Posted on

Changelog – October 23rd, 2021


  1. Billing vs Shipping Addresses
  2. Order Item Refunds
  3. Order Status Colors
  4. Mobile-Friendly(er) Admin Edit Customer
  5. Automated WA State Quarterly Tax
  6. Editable Customer Payment Amounts
  7. Map Zoom Level Slider
  8. Disable Customer Order Editing
  9. IdeaRoom: Customer Signature
  10. IdeaRoom: Refactor

Billing vs Shipping Addresses

It is now possible to differentiate the billing address from the shipping address. This does not affect payment of an order, or whether a card will be charged. It’s purely for communication.

  • Each address can now be defined as the Default Billing or Default Shipping.
  • No change is made to any existing orders.
  • The shipping address is still the default billing address, until a default billing is explicitly assigned on the Addresses tab.
  • Each Order has a new “Set Billing” in the Order -> Edit dropdown.
  • When that is set, both shipping address and billing address appear on the order.

Order Item Refunds

This provides feedback on which items have already been refunded in an order, and restricts items from being refunded multiple times.

  • A negative Adjustment is created with the title of the product and the amount.
  • The Activity Log records which administrator performed the refund and when it occurred.

Order Status Colors

WooCommerce color coordinates order statuses for quick visual confirmation of order status. Each site uses order statuses differently, i.e. only sites that charge orders on checkout can reach “failed” status.

Still To Do: Provide consistent color rules for CAL custom statuses; routed, delivered, etc.

  • Pending (created, unpaid) – Grey
  • Processing (paid for) – Green
  • Failed – Red (only sites that charge orders)
  • Completed (delivered) – Blue
  • Others will be added for Shed order status flow

Mobile-Friendly(er) Admin Edit Customer

Some of the order editing features were not accessible on a mobile device because they overflowed off the right of the page. This page will always be desktop-first, as that is how it’s used primarily and it’s content-creation not content-consumption, but the content is now all visible and functional for mobile. Making an order and all its items mobile-first would either require wrapping each column of the order vertically (creating 8 rows for every item for every order), or hiding some columns of the order table, which would make editing orders more difficult. We opted for leaving the size of the order and its items the same, and providing a horizontal scroll, which is natural with a finger swipe on mobile.

  • Each tab is constrained to the window size.
  • Tabs that are wide (orders, primarily) move horizontally.
  • Multiple orders scroll together in sync; i.e. you don’t have to scroll over for one order, then the next, then the next, etc. They all scroll together.

Automated WA State Quarterly Tax

Tax rules are comprised of two pieces. Calculating tax rates are based off WooCommerce tax tables. Reporting tax codes to the state are based off CAL Addresses. WooCommerce doesn’t know about, nor support, tax codes. They are simply tax rates based on zip codes, but tax is remitted based on tax codes provided by the state.

  • The tax rate that calculates the dollar amount that actually gets paid by a customer on an order is from the WooCommerce tax tables. Those need to be updated manually every quarter (or so; few rates change each quarter).
  • The tax rate and code on a CAL address is used to calculate what to remit to the state for each code.

Editable Customer Payment Amounts

Toggle the ability for customer to choose a transaction amount against their balance. Originally, only the entire balance could be paid with a manual transaction from the customer’s My Account. This update provides a toggle in CAL -> Settings -> Payments.

  • If it’s toggled off, a customer can only pay for the entire outstanding balance.
  • If it’s toggled on, any amount greater than $0.00 and less than their balance can be paid, as many times or as often as needed.
  • This is a site-wide setting, meaning it is not on a per-customer basis.

Map Zoom Level Slider

Some clients serve a very specific region (Puget Sound, Los Angeles, Boise) and need their map to cover the deliverable regions by default. Others are not so specific and serve a much larger area or offer shipping, and thus need the map show the whole country when loaded. The slider controls every map that CAL uses: address lookup shortcode on home pages, checkout page, My Account Edit Address, Admin Add Customer, and Admin Customer Add Address.

  • Sliding to the right will zoom in more, using the lat/lng as its center point.
  • Sliding the the left will zoom out.

Disable Customer Order Editing

It is now possible for a CAL client to disable order editing by their customers. It isn’t a toggle in the admin (yet), but will become that. For now, it is a series of filters to make the customer My Account view-access only. Once an order is placed, it can not be removed or edited, regardless of the order cutoff or delivery day.

IDEAROOM: Customer Signature

In addition to requiring a signature upon delivery (from the delivery portal as admin), many clients will also require a signature for the quote. This enables a Signature requirement from the purchaser of the building so that it can be accepted on the customer’s device on the customer’s time.

  • The Signature can be required on any order status.
  • For each order status that it is required, the signature option is removed when it’s complete.
  • Client-specific messaging, concerning what they are agreeing to with their signature, could be added in the popup window for each specific order status.

IDEAROOM: Refactor for multiple clients in one CAL

While it was just Tampa Sheds using the IdeaRoom integration, it was easy to know what the domain was that was hosting the configurator, and which pages were defined for each type of configurator. CAL needs to know about each configurator instance that IdeaRoom is hosting and where, so that when a building is edited, it can open the right IdeaRoom instance and unique building hash value. CAL also requires custom theme templates to make the configurator full-screen, rather than inside the margins as a frame within the larger window. With each new configurator instance, staging or production, we originally had to create a plugin for each client to control their IdeaRoom setup. This refactor makes it possible for anyone to set, change, and update, where configurators are on the site, which types of buildings (sheds, barns, carports, etc), and what their IdeaRoom account IDs are to load the configurators, and where to send someone to edit a building. Previously, it was hardcoded to a specific theme template, page ID, and configurator ID. Those are now editable by any administrator, so page URLs can be unique for any client.