In May we worked on:

New Features:

  • In General Ledger we progressed Layby and tax-exempt items
  • The Gmail Mailer was improved and now complies with DMARC rules.
  • We have enabled seamless integration and improved product visibility in the Google Merchant feature.

Housekeeping concentrated primarily on Rails and POS. We also addressed Flaky Specs, Feature Flags, Vue 3 and Ruby.

Improvements this month concentrated on:

  • Stripe
  • Pre Orders
  • POS
  • Spreadsheet Deals
  • MailGun
  • GiftCard Load
  • SEO & Social Media

New Features

  • General Ledger
    • Layby
      • We progressed our new feature in development by preventing Layby draft invoices from being edited in the back office, enhancing data integrity and preventing inadvertent changes to draft invoices. #187357821
    • We progressed in our new feature in development by implementing the functionality to correctly handle tax-exempt items during translation to the ledger, ensuring accurate financial records and compliance with tax regulations. #187281577
  • Gmail Mailer
    • We improved our new feature in development by implementing a Gmail Server lib (Client), enabling the bookshop mail server instead of relying on the proxy method, thereby complying with strict DMARC rules of recipients and mail hosts. #187512355
  • Google Merchant
    • We progressed in our new feature in development by updating our schema to accommodate Google Merchant Centre requirements, enabling seamless integration and improved product visibility. #187043171


  • Assn Copy Item
    • We added a rule to the cronjob for copying items, ensuring only relevant items are included in the association portal, streamlining data management and improving efficiency. #187233850
  • Pre Orders
    • We will update the Catalogue pages and will only check if the availability/publication date is in the future. #187494991
    • We will add an option for shops to enable/disable the pre-order option. #187528951
    • We enhanced the portal website to display the pre-order badge, providing clearer visibility and management of pre-order books for association members. #187325648
  • Stripe
    • Testing Mode
      • We added an option to switch between testing and live modes for Stripe, providing greater flexibility in managing payment processing. #185935461
  • POS
    • Transactions
      • We updated the POS transactions state management to reflect the current process step, improving transaction tracking accurately. #187572899
  • Spreadsheet Deals
    • We changed the default time settings on the date/time picker to start at the date uploaded or a future date at 00:01 and end at 23:50, reducing mistakes when uploading deals. #187528841
  • MailGun
    • DMARC
      • We implemented the “Reply-To” API for MailGun to ensure that our emails pass DMARC checks by having the Sender and From values match, while still allowing distributors to reach out to shops easily. #187528058
  • GiftCard Load
    • We improved the Gift Card loading process by using the buyer account as the gift card owner if no customer username is provided, reducing errors and streamlining the process. #187550021
  • SEO
    • We improved Schema Markup by adding the shop’s location, addressing crawl errors and enhancing search engine visibility. #187402893
  • Social Media
    • We corrected the issue where the Bookhub logo was displayed instead of the product in Facebook link previews, ensuring that product images are displayed correctly on social media platforms like Facebook and Twitter. #186288277

Housekeeping & Upgrades

    • Flaky specs
      • We addressed flakiness in a unit spec, ensuring more reliable test outcomes. #187519623
    • Deprecate Feature Flags
      • We introduced a new spreadsheet deals interface, simplifying deals management; now, all websites can access the new interface. #187489269
    • Rails
      • Rails 6.1
        • We enabled the Content Security Policy Report Only feature in Rails 6.1, enhancing our site’s security by supporting the Permissions Policy security feature. #187448429
        • We ensured that deprecations are shown in GitHub test logs by addressing the issue where they were only visible in stderr locally, improving our ability to track and resolve deprecations. #187354001
        • We ensured that beta6-1 and its URL function correctly for any site, improving site reliability and compatibility with Rails 6.1. #187489624
      • Rails 7.0
        • We resolved problems with running unit tests, enhancing our ability to verify the correctness of our code to ensure our tests run smoothly and reliably. #187597707 #187577030
        • We added the Gemfile version for Rails 7, preparing our system for the upcoming upgrade and ensuring compatibility with the new Rails version. #187515621
      • Rails 4 Removal
        • We removed leftover R4 conditions from our codebase, ensuring that the Rails 4 version is completely eliminated and streamlining our system’s performance. #187542514
        • We removed R4 from tests, eliminating unnecessary methods added for R4 compatibility, streamlining the codebase and reducing technical debt. #187432935
    • Rails Deprecation
      • We fixed the deprecation warning, ensuring code compatibility with future versions of Rails beyond 6.1. #187095788
    • Ruby
      • We upgraded Ruby to the latest patch versions and updated certain gems to fix tests, resulting in green CI tests and improved compatibility with Ruby 3.2, enhancing overall code stability. #187484257 #187489703
    • Ruby 3.2
      • We added a few settings to support Ruby 3.2.3 and solved a deprecation warning in Rails, facilitating smoother development and deployment workflows. #187448181 #187095950
    • Vue 3
      • We refactored the Onboard Welcome queries to align with our new patterns, ensuring a more streamlined onboarding process. #187569645
      • We converted the gift card settings test to a Cypress test, modernising our testing framework, to improve our testing consistency and reliability. #187567115 #187521150
      • We improved our pagination component on a few pages, and we also improved some automated tests related to our development pipeline. #187496110 #187488700 #187437126 #187455665 #187455652
    • POS
      • Sidekiq BETA
        • We solved the issue where POS transactions were creating duplicate invoices during server retries, ensuring that an unsent transaction being retried through the Retry POS Transaction tool does not result in duplication. #176202771
    • SQL DB Locks
      • We optimised code for generating Invoice IDs, significantly reducing wait times and thus improving system performance. #187366936

  • Upgrades
      • Vue 3 Upgrade
        • We added type safety and updated our query patterns for the OTP code feature, enhancing the code’s reliability and maintainability. #187549597 #187540585 #187529993 #187523501
        • Cypress tests to Cypress-on-rails tests] We converted a few spec-cypress test, improving the testing framework’s compatibility and reliability. #187551684 #187454639
        • We refactored Self Onboarding queries in preparation for the tanstack v5 upgrade, ensuring smoother transition and compatibility with Vue 3. #187483271
        • We updated query types for Sell Gift Card features, ensuring compatibility and smooth operation after the Vue 3 upgrade. #187469753

    See for all changes including bug fixes.

    Some of the things we are currently working on:

      • Rails 7
      • Vue 3 Upgrade
      • Deals
      • General Ledger
      • Bug Fixes

Leave a Reply

Your email address will not be published. Required fields are marked *