Skip to main content

v2 API

The release notes for updates to v2 of the Propeller Platform.

Version 2.28 - 24th December

CSV Data Import

New Features

  • Updated CSV import functionality to default IDs to 0 in all services that support csvImport, simplifying workflows and ensuring consistency in data imports.
  • Added CSV import functionality for discounts, enabling seamless bulk updates or imports for discount-related data.

Bugs

  • Fixed an issue with discountCsvImport where validFrom and validTo fields always triggered errors, ensuring successful imports regardless of whether these optional fields are included.

Order

Bugs

  • Fixed an issue where tenders would throw an error if the original product of a tender item was deleted, ensuring tenders are no longer dependent on the product's current price.
  • Resolved an issue where item discounts in order and quotation responses always returned 0, ensuring that accurate discount values are now included in the response.
  • Fixed an issue where tenders would throw an error if the original product of a tender item was deleted, ensuring tenders are no longer dependent on the product's current price.
  • Fixed an issue where tenderUpdatePostage did not allow setting postageData.price back to 0 after it was set to a value greater than 0, ensuring accurate updates to postage costs.

Product

Bugs

  • Fixed an issue where duplicate products appeared in exports (e.g., Channable integration), ensuring that each product is included only once per export.

User Management

Bugs

  • Resolved an issue where existing contacts added to a company were not returned properly, ensuring contacts are visible immediately after being added.

Pricing

Bugs

  • Fixed an inconsistency in customer-specific prices (price.gross) when bulkPrices were queried in CatalogProductDetailsQuery, ensuring accurate and consistent price values regardless of bulk pricing data.

Version 2.27 - 18th December

CSV Data Import

  • This release consists of the back-end for allowing to import Propeller tenant data through CSV files. This has several benefits:
    • For Prospects: Prospects can import their data into the Propeller platform for testing purposes, experiencing the platform in their business context. This allows for faster evaluation and exploration of Propeller's full potential.
    • For Existing Tenants: Propeller tenants can use data import tools to enrich their platform with additional configurations or datasets without requiring costly integrations for one-time updates.

Supported Data Imports:

  • Pricing Data:
    • Product prices
    • Pricesheets
    • Cost prices
    • Bulk prices
  • Attributes:
    • Attributes
    • Attribute descriptions
  • Users:
    • Contacts
    • Companies
  • Inventory

User Management

New Features

  • Password reset emails can now be fully customized with tenant-specific logos, sender domains, and email content, enhancing branding and providing a tailored user experience.

Product

Bugs

  • Product search queries now correctly return no results when positive order lists are empty, ensuring accurate filtering and preventing unintended product visibility.
  • Fixed errors related to integer and decimal range filters in product queries, ensuring seamless data retrieval without null field errors.

Cart

Bugs

  • Resolved an issue where starting a new cart triggered an “Unauthorized use of companyId” error, ensuring smooth cart initialization.

Version 2.26 - 10th December

Product

Bugs

  • Improved product and cluster queries to consistently apply order lists in singular queries, ensuring aligned behavior across all query types when handling product visibility and access.

  • Fixed an issue with deleting settings from cluster configurations where some settings erroneously returned “not found” errors. The deletion and update processes for cluster settings are now more reliable, ensuring consistent handling of cluster configuration operations.

Version 2.25 - 2nd December

User Management

Bugs

  • Resolved an issue where querying sources on a contact resulted in an unknown error. API users can now fetch contact sources without encountering errors.

Cart

New Features

  • The GET cart endpoint now returns surcharge details, providing more comprehensive cart information for API users.

Version 2.24 - 27th November

Data Import

New Features

  • Introduced a productCsvImport mutation for importing products via CSV files, allowing users to map CSV columns to database fields for efficient product creation or updates.

Version 2.23 - 20th November

Order

Bugs

  • Batch updates for orderlists now skip duplicates without errors, ensuring smoother imports and updates.

  • Deployed a fix on ICP (ICS in English), so it is applied correctly to carts, setting tax to 0% when applicable.

Version 2.22 - 13th November

User Management

New Features

  • Added phone and email fields to the company entity, enhancing accessibility to key contact information.

  • Added company debtorId to search functionality, enabling searches based on company rather than contact debtor IDs. Also made “email” searchable for improved usability in quote and order creation processes.

Order

Bugs

  • Fixed an issue causing errors in fetching user claims during order updates and tender processing. This resolves interruptions in the order and tender workflows on staging and production environments.

Product

New Features

  • Added a query to retrieve products associated with a specific clusterOptionId, streamlining access to products within defined cluster options.

Bugs

  • Resolved an issue causing connection errors during attribute creation in clusters.

  • Fixed an issue where linked products were not returned in queries when getDescendants was set to false, ensuring accurate product data retrieval across categories.

Version 2.21 - 5th November

Category

New Features

  • Introduced new functionality ‘Product in multiple categories’. This update enhances the B2B commerce platform by enabling products and clusters to belong to multiple categories. This flexibility improves product organization and visibility, ensuring that items can be associated with various categories to meet complex business needs. Each product or cluster maintains a primary category for backward compatibility, while symlink relationships support additional categories. Managing this feature through the Back Office is expected soon, as can then be read in the release notes.

Product

New Features

  • Added functionality to set a default product within a cluster. Additionally, the first product created in a cluster will now automatically be set as the default, streamlining product organization and management.

Bugs

  • Fixed issues with cross-upsell creation for both product-to-cluster and cluster-to-cluster scenarios. Resolved errors causing null returns for non-nullable fields Crossupsell.productFrom and Crossupsell.productTo. Now, users can create cross-upsells successfully, and related products display correctly after a page refresh.

  • Updated the packageUnit field in the productUpdate/productCreate mutations to accept string values instead of numbers, aligning with expected data formatting. This adjustment ensures that packageUnit can store descriptive text as intended.

Order

New Features

  • Added additional validation to ensure that a Contact belongs to the specified Company, preventing the creation of Carts, Orders, or Quotes with invalid contact-company combinations.

Version 2.20 - 29th October

Order

New Features

  • Enabled deletion of payments via eventing when an order is deleted, ensuring associated payments are removed automatically and preventing orphaned data in the checkout process.

User Management

New Features

  • Updated authentication and email settings to make the redirectUrl parameter optional, providing flexibility in cases where a redirect is not needed.
  • Implemented validation across services to ensure that Carts, Orders, and Quotes are only created for valid contact and company combinations, preventing mismatches when a contact does not belong to the selected company.

Pricing

New Features

  • Added functionality for user groups/tags in to support customized pricing.

Version 2.19 - 28th October

Cart

Bugs

  • Fixed an issue where cartStart didn’t work in requests without an accessToken.

Version 2.18 - 24th October

Cart

Bugs

  • Fixed an issue where the wrong error message was displayed when a product did not exist in the cart. The system now correctly shows “Product does not exist” instead of “Pricing information not found” when attempting to add a non-existent product.

Media

Bugs

  • Fixed an issue where .avif images were not being transformed correctly.

Order

Bugs

  • Fixed an issue where the priceTotalNet field was returning null when querying order details. The system now correctly calculates and displays the net total price for ordered items.

User Management

Bugs

  • Fixed an issue where the customerCreateAccount and contactCreateAccount mutations were throwing errors related to the password field.

Version 2.17 - 15th October

Media

New Features

  • Users can now securely manage and retrieve order-related attachments, improving the workflow for processes that require additional documentation, such as signed forms. This functionality allows multiple files to be attached to orders, with access secured through credentials to ensure data protection. Attachments can be retrieved via an API, providing a seamless integration into existing systems. This release allows only attachments to be managed by admin users, but this will be extended in the next release.

User Management

New Features

  • Updated the password reset emails to replace the long URL link with a more user-friendly “click here to reset your password” text.

Bugs

  • Added the middle name field to company contact selections, ensuring that it is now included in all relevant search results, such as creating quotes and orders.

  • Resolved an issue where the middle name was incorrectly marked as mandatory when creating a company address. Now, middle name is optional as expected.

  • Resolved an issue where the isDefault field was not being updated correctly through the companyAddressUpdate mutation for invoice addresses.

Order

New Features

  • Updated the orderStatusUpdate mutation so that orderType is no longer mandatory.

Product

New Features

  • Added support for retrieving multiple products by productId, allowing for more efficient queries and better handling of bulk product requests.

Bugs

  • Resolved an issue where the deletion of a product assigned to cross-sell or upsell relationships would cause errors in the crossUpsells query. Now, the system handles deleted products correctly.

  • Resolved an issue with the cross-sell and upsell functionality for Clusters.

Pricing

New Features

  • Improved the pricing system to fully support user groups, allowing for greater flexibility and scalability in managing pricing across multiple users and entities. This change simplifies price management and ensures better alignment with group-based pricing strategies.

Bugs

  • Resolved an issue where the bundle net price was being calculated incorrectly. The net price for bundles now reflects accurate values, ensuring that discounts and product prices are applied correctly across all bundle components.

  • Resolved an issue with the price priority logic in the Explain Price function for bulk pricing. Prices are now displayed correctly based on the configured priorities for NET bulk price, List price, and Cost price calculations across different quantities.

Version 2.16 - 3rd October

User Management

New Features

  • Enabled the ability to create a webshop account for existing contacts via API, allowing them to log in to the B2B commerce frontend portal. Also added functionality to connect a Propellor contact to an existing user account, improving account management for existing B2B users.

Order

New Features

  • Added createdAt and lastModifiedAt filters to queries for orders, order lists, tax and valuesets. This ensures that displayed numbers are accurate for selected time filters.

Bugs

  • Optimized data fetching and caching to reduce query loading times, resulting in a faster experience when accessing order, quote, or request details.

Product

Bugs

  • Fixed an error when sorting products by price in certain categories. Sorting now works reliably across all categories.
  • Fixed an issue where adding the same product to its own CrossUpSell resulted in an error. A validation has been added to prevent adding a product as its own accessory, enhancing the user experience.
  • Fixed an issue where updating the product quantity did not update lastModifiedDate in the cart. Now, any change in product quantity correctly updates the timestamp, ensuring accurate tracking of cart modifications.

Pricing

New Features

  • Enhanced the explainPrice query to include the name of associated pricesheets, providing users with greater clarity on how explained prices relate to their respective pricesheets.

Bugs

  • Fixed an issue where bulk sales prices were incorrectly added to the price stack when the discount type was set to cost price plus.
  • Fixed an issue where the ICS setting was not applied to carts, orders, requests, or quotes. Now, when ICS is set to “yes” for a delivery address, the tax percentage is correctly set to 0.
  • Fixed an issue where the end-to-end flow for action codes was not working correctly. Now, action codes are properly created, applied to carts, and accurately impact pricing as expected.

Attributes

Bugs

  • Fixed an issue where listing attributes with includeDefaultValue was not working for non-product and non-category attributes. The query now correctly returns attributes with values for the specified contact.

Cart

Bugs

  • Resolved an error that occurred when executing the “carts” query, enhancing stability and ensuring consistent query execution.

Version 2.15 - 25th September

User Management

New Features

  • Implemented a new mutation to facilitate password reset emails. The publishPasswordResetEmailEvent mutation generates a password reset link and appends it to the email content, improving the user experience for password recovery.
  • Added the debtorId to Company and include it in both creation and update processes. Deprecated the use of Contact debtorId, ensuring debtor IDs are consistently managed at the Company level.

Order

New Features

  • Added createdAt and lastModifiedAt filters to improve the filtering of orders, order lists, tax information and value sets within specific timeframes (last day, week, month, or year).
  • Orders created for a company will now correctly store the company debtorId.
  • Introduced a new mutation for updating order addresses, either as a separate orderUpdateAddress mutation or as an action within orderUpdate, providing a more flexible way to modify order address details.

Bugs

  • Resolved an issue causing errors when querying an order with the exportStatus field due to an enum case mismatch. The exportStatus is now correctly handled.

Pricing

New Features

  • Implemented support for product-specific tax codes based on tax zones. This ensures accurate tax calculation according to the tax zone associated with each product, improving pricing accuracy during the checkout and tender processes.

Bugs

  • Fixed an issue preventing order processing when the tax zone or percentage could not be resolved. Orders will now default to a 0% tax rate when the tax information is unavailable, ensuring smooth order creation without errors.

Cart

Bugs

  • Fixed an error when updating a cart that required the “uuid” field in certain cases. Now, carts can be updated successfully without this issue.

Product

New Features

  • Clusters will now be hidden if all associated products are unavailable, preventing customers from viewing or attempting to order out-of-stock clusters. Clusters will remain visible as long as at least one product within them is available. This update enhances the ordering process and improves user experience.

Bugs

  • Fixed an issue where creating a product resulted in packageUnitQuantity being set to an empty string, causing errors during order processing. Now, packageUnitQuantity is correctly initialized, preventing errors when adding products to a tender.

Media

New Features

  • Media can now be imported in bulk via REST.

Version 2.14 - 17th September

Product

New Features

  • Improved searching for products, where filtering by SKUs returned products containing partial matches rather than only those that fully match the specified SKU.

Order

Bugs

  • Resolved an issue where large orders displayed an incorrect total sum on order and order lines, capping amounts at €100,000.

Version 2.13 -11th September

User Management

New Features

  • Added GraphQL mutations to associate and disassociate a Contact with multiple Companies using contactIds and companyIds. These mutations return the full Contact entity with all available fields.
  • Implemented GraphQL federation to allow retrieval of all related contact, company, and customer data when fetching a Cart, Order, or Tender. This reduces the need for multiple API calls.
  • Enabled the ability to search for a Company using linked Contact data. This allows easier discovery of companies associated with specific contacts, improving search functionality for administrators.
  • Added a guard to the passwordResetLink.

Bugs

  • Fixed pagination issue for Companies, ensuring it starts at page 1 with correct offset, start, and end values based on the number of items displayed.
  • Resolved issue with the contactRemoveFromCompanies mutation. The mutation now returns a success response confirming the contact has been successfully removed from the specified companies.
  • Fixed the contactUpdate mutation failure by ensuring that the parentCompanyId field returns a valid, non-null integer. Additionally, the parentCompanyId field has been marked as mandatory in the GraphQL schema.
  • Fixed an issue where the company query returned an empty array for contacts after using the contactAddToCompanies mutation when the company had no users. The contact is now correctly associated with the company and is returned in the company query immediately after being added.
  • Fixed an issue where querying by userId with a limited access API key could return data for other users. The query now properly restricts access to the correct user’s data.

Order

New Features

  • Updated the logic for sale margin calculation on quotes and orders.
  • Updated the source field logic for quotes, orders and requests to reflect the correct creation source.
  • Added the ability to create orders and quotes for a Contact and Company combination.

Bugs

  • Breaking change: Fixed an issue where the Tender query threw an error when using the orderId returned from the tenderProcess mutation. Orders can now be created and fetched correctly.
  • Fixed issue where item.package was returning null in GraphQL despite being available in the database.
  • Fixed the orderUpdate mutation.
  • Fixed an issue preventing orders from being placed in the checkout process. Resolved an error related to shipping cost calculations that caused the order total to display incorrectly.

Pricing

New Features

  • Updated PriceCalculateInput to allow contactId, customerId, and companyId fields to be nullable.

Bugs

  • Fixed an issue where the explainPrice API returned incorrect tax codes for certain tax zones. The correct tax code is now returned based on the taxZone, productId, and priceId.
  • Fixed an issue with the price sheet search functionality. The search feature now correctly returns a list of price sheets matching the entered name.
  • Fixed issue with bulksalesprice added incorrectly for COSTPRICEPLUS discount type.

Cart

New Features

  • Breaking change: Enabled the application of action codes to carts. Standardized the naming to “actionCode” across all relevant areas to ensure proper functionality and consistency.
  • Implemented the ability to create a Cart linked to both a contactId and companyId. The Cart now correctly applies company-specific pricing and order lists. Deprecated the userId field, ensuring backward compatibility while encouraging the use of contactId and companyId.
  • Added a new GraphQL query to list existing carts based on contactId, companyId, or customerId. This allows retrieval of multiple carts for B2B or B2C scenarios, with pagination support and user-based permission validation.

Bugs

  • Fixed an issue where the lastModifiedAt field was not updating when a Cart was modified. The field now correctly updates whenever a Cart is updated or items are added, removed, or modified.
  • Fixed an issue where totalGross in the Cart total incorrectly included postage costs when no postage information was provided. Postage data is now only applied when explicitly added to the cart.

Product

New Features

  • Enhanced product search functionality to support viewing products as a contact with a selected company. Product restrictions now apply based on both contactId and companyId, ensuring the correct order lists are applied in the search results.

Bugs

  • Resolved bundle error when adding products to a quote. Products can now be successfully added to the quote without errors.
  • Resolved inconsistency in the class field type, ensuring correct filtering in product search.
  • Fixed an issue with inconsistent maxPrice values in product search results when adjusting the price filter. The maxPrice now consistently reflects the correct value across queries.

Version 2.12 - 2nd September

Attributes

Bugs

  • Fixed an issue where retrieving attributes for companies, contacts, and customers returned an empty array instead of the expected attribute values.

Product

New Features

  • Added new sortable and filterable fields partnerEntity and active (default: Y) to the order list.

Bugs

  • Product search now returns only active order lists by default.
  • Resolved an issue where the order list in products was not returning the selected filter values; the retrieved filter values were previously always null but now return correctly.

Order

Bugs

  • Added fields to prevent duplicate order exports, making it easier and more reliable to integrate with third-party systems.

Version 2.11 - 26th August

Pricing

Bugs

  • Fixed an issue with sale margin percentages, ensuring they are now calculated correctly in quotes and orders.
  • Resolved a problem where deleting a user linked to a price sheet could cause errors.
  • Corrected an error when adding multiple bulk price discounts to a product, allowing you to apply these discounts without issues.

Order

New Features

  • Enhanced the search functionality, allowing you to search for quotes, orders, and requests by their respective IDs and company names for quicker access.
  • Added the ability to sort requests, orders and quotes by company name, status and total amount.

Bugs

  • Fixed an issue where the orderlistUpdate mutation was not properly clearing products from the order list, despite returning a successful response. Now, the cleanup works as expected.
  • Resolved an issue where the orderUpdate mutation was causing errors.

Product

Bugs

  • Resolved an issue where updating a product could unintentionally reset certain quantity fields. These fields will now retain their values unless specifically updated.

Version 2.10 - 20th August

Pricing

New Features

  • Added the property ‘price display’ to indicate how a price should be shown on the front-end.
  • Pricesheets can now also be assigned to a user group.
  • It is now possible to filter pricesheets based on specific companies, contacts, and customers.

Order

New Features

  • Added additional fields for orders and order lines.

Version 2.9 - 13th August

Attributes

Bug Fixes

  • Changed the validation pattern for the name field in the attributeDescriptionCreate mutation.

Product

Bug Fixes

  • Fixed an issue with sorting of products by price filter.
  • Fixed an issue with searching products using range filters.
  • Fixed an issue where the Orderlist query would incorrectly throw an error if ProductSearchInput was not provided, despite it not being mandatory.

Pricing

New Features

  • You can now assign multiple companies, customers or contacts to a pricesheet by using an array of sources.

Bug Fixes

  • Fixed an issue with product prices showing as null, even when prices are set.
  • Pricesheet names are now nullable.
  • Fixed an issue where the pricesheetDelete mutation incorrectly would throw an error.
  • Aligned the discount service with the recent changes to pricesheet entities.
  • Updated the priceUpdate mutation to allow setting prices, including list, suggested, cost and store prices, to 0.

Address

New Features

  • Mutations now include ICP.

GraphQL Playground

  • The GraphQL playground in-browser IDE has been removed from production environments’ URLs for security reasons. Please use alternative tools like Altair or Insomnia to explore and test GraphQL on the same URLs, and remember to add your API key to the headers for schema polling.

Version 2.8 - 7th August

User Management

New Features

  • Enhanced contact management by listing all associated companies with pagination support for efficient querying.
  • Improved handling of user data, ensuring smooth processing even with incomplete user IDs.

Cart

New Features

  • Improved cart management by adding additional order detail fields.
  • Fixed an issue where carts were not properly being deleted.

Product

New Features

  • Improved the character limitations of product descriptions, ensuring a better fit for business needs.

Bug Fixes

  • Ensured that filters are applied correctly when searching by attribute name for accurate results.
  • Improved product queries to handle non-existing slugs appropriately, providing better error messages.
  • Addressed issues with missing information in product search results, ensuring comprehensive data retrieval.
  • Fixed a selection of mutations for product availability.
  • Fixed filtering functionality to allow effective product status searches.

Category

Bug Fixes

  • Resolved issues with category name updates in new languages, ensuring accurate reflection of changes.

Pricing

New Features

  • Enhanced pricing customization by adding the ability to manage prices by user group, allowing for more precise pricing strategies.

Order

New Features

  • Added support for tracking orders by company, enhancing multi-company environment capabilities.

Bug Fixes

  • Ensured that searching by INVOICE_ADDRESS_COMPANY or RECIPIENT_COMPANY returns results.

Favorite Lists

New Features

  • Added support for looking up and adding items (products, companies, contacts, customers) by their source IDs. This enhancement improves the organization and management of favorite items.

Platform - Version 2.5 - Preliminary Staging Release

This is the first official Beta release of the Propeller v2 platform. It contains the current status of all Propeller services together for the first time.

Not all features are expected to be fully functional, but releasing the services in this manner will provide insights internally and to our partners about the scope of changes throughout the v2 platform and allow us to complete the work necessary to bring this into full production-ready status.

Completely new in v2

  • Attribute
  • Business Rule Builder
  • Carrier
  • Favorites
  • Orderlist
  • Order Status
  • Pay Method
  • Price
  • User Roles
  • ValueSet

Lots of changes between v1 and v2

  • Cart v2
  • Crossupsell
  • Order & Order helper
  • Product Search
  • Surcharges
  • Tax
  • User Management
  • Warehouse

Only minor or no changes between v1 and v2

  • Address
  • Category
  • Checkout
  • Email
  • External Reference
  • Inventory
  • Media
  • Product Bundle

Completely new in v2

Attribute

The attribute service provides the means to add metadata to objects in a dynamic manner suited to your own use cases.

Attributes are available on the following models:

  • Products
  • Clusters
  • Categories
  • Companies
  • Contacts
  • Customers

The service includes the following entities:

  • AttributeDescription
  • AttributeValue
  • Attributes

AttributeDescriptions define the attribute, holds the type and class and also the high level information.

AttributeValues are the specific values that are assigned. AttributeDescriptions have a default value, and the default value is an instance of attributeValue that is connected to the attributeDescription.

Attributes are the instance that’s assigned to an object.

When a product needs a new attribute, you first define the attributeDescription and the default value as an attributeValue.

Then when you want to add this to a product, you create an attribute and attributeValue with the custom specific value.

Key changes in the v2 release

  • No longer supports attribute inheritance, all objects need to have a value-set on them explicitly
  • Uses a default value field that can be used for all underlying objects. It’s also possible to set a non-value for an object.
  • Queries can be modified to include or exclude default values in result sets.

Business Rule Builder

The Rule Builder is a powerful tool that can use a series of and/or arguments to select the exact set of data and then perform a number of actions to add, modify or remove this or related data.

There is a high level setting regarding the rules that determines how multiple rows are treated when applying the rules within the table. This setting is called the "Hit Policy":

  • FIRST: Return the first applicable rule in the table
  • COLLECT (ALL): Apply all the applicable rules in the table cumulatively

Key Business Rule changes in the v2 release

  • Brand new in v2 with no backwards compatibility or data migration possible
  • Currently only supports rule creation using the backoffice
  • Rules are implemented for Incentives and Carriers with further rule sets in development

Carrier

The carrier service provides the ability to set up delivery and fulfillment options for customers purchasing through the platform.

Combined with the Warehouse service, the carrier information can be setup as simply or complex as required. It’s connected to the rule builder service allowing for a dynamic enabling of carriers based on the contents of the basket or profile of the user.

Key Carrier changes in the v2 release

  • Dynamic visibility provided by the rule builder

Favorites

The favorites service provides the functionality to connect a list of products with a user.

While a user can have only 1 default favorites list, it’s possible to create multiple lists for a single user, allowing them to crate and curate lists for different purposes.

Favorites lists can also be created for companies, allowing all contacts within that company to share the same lists.

Key Favorites changes in the v2 release

  • While the feature is available in v1, it is not compatible with the previous backoffice UI.

Orderlist

Orderlists provide the ability to create custom product sets for individual companies and users. The two types of orderlist allow this to be setup according to the type of catalog required. A positive orderlist results in only those products included being visible to the user, where a negative orderlist gives the user access to the entire catalog but excludes the products specified.

Key Orderlist changes in the v2 release

  • This service is present in v1 without a backoffice interface.
  • Replaces previous customer specific catalog functionality.
  • The ability to assign orderlists by rules will be added in the future.

Order Status

The order status service manages the flow of statuses that an order goes through starting at requesting a quotation through to fulfillment and archival.

This service ensures that the flow can be customized to the setup of the webshop.

There are order statuses and order status sets - the sets are mapped to the tabs in the backoffice UI to group similar statuses together.

Additionally, each status has a number of settings that refer to the orders with the status:

  • Default
    • Default statuses are provided by Propeller and cannot be modified
  • Public
    • Orders that are not public cannot be viewed by the associated customer. This is typically used for draft orders that have not yet been finalized.
  • Editable
    • This denotes if the order can be modified.
  • Deletable
    • This denotes if the order can be deleted. Non-deletable orders are usually required for financial record-keeping purposes.
  • Exportable
    • Typically exportable orders are set to allow an integration (e.g. with an ERP) to only pick up relevant orders.
  • Confirmable
    • The confirmation process for an order normally occurs before the order is sent out for fulfillment, so only placed (and paid) orders are typically set to confirmable.
  • Archivable
    • Archivable orders are removed from the active screens whilst not being removed from the database. It’s normal to only allow fully completed and fulfilled orders to be archived.

Key Order Status changes in the v2 release

  • This new service exposes this functionality within the new backoffice and allows the statuses to be maintained by the webshop admin.

Pay Method

The pay method service gives the high level information about different payment methods that can be used in the webshop. This includes online as well as offline payments.

While Propeller itself doesn’t handle the front end payment process, the payment methods are required to be present to provide the options at the checkout and include this in the order details.

Key Pay Method changes in the v2 release

  • Completely new service with this v2 release.
  • Replaces the current setup which is based on standard user attributes.

Price

The new price service replaces the existing v1 implementation with a streamlined and optimized set of functionality. The price service takes care of all pricing information on products and includes the data models for default, bulk and cost prices all mapping to the same unified structure.

All prices are applied through price sheets that contain a set of products and their associated net or modified pricing data. These prices can be assigned to users through a standard id pairing, or can be dynamically applied using the rule builder.

Key Price changes in the v2 release

  • All customer specific prices now need to be applied with price sheets.
  • There is no data migration for v2, so pricing details need to be fully created.
  • As of the current release, the backoffice UI is still in development however the data models for prices are already available.

User Roles

The new user roles provide the access rights for the underlying services in the platform. There are a number of available roles that span the platform, dividing the functionality into suitable pieces that are frequently associated together.

When assigning a role to a user, it’s possible to give a access level from:

  • Viewer
  • Editor
  • Owner

Viewers have only read only data access, while the owner has full access. The editor has some write capabilities but it’s limited.

With this change we’re also pulling the internal users out of the webshop user set removing any potential confusion with internal and external user credentials.

Key User Roles changes in the v2 release

  • This feature completely replaces the existing user permissions and access implementations.
  • We’re initially focusing on the Viewer and Owner roles with the Editor role being developed over time.

ValueSet

The value-set service provides management of sets of data. The platform is delivered with a standard list of system value-sets that cover a large number of common functionalities such as country lists, currencies, character sets and date formats.

The service additionally supports custom value-sets that can be created, modified and maintained per environment for any use case where a specific list or dropdown needs to be populated with a curated list of data.

Key ValueSet changes in the v2 release

  • Introduction of non-modifiable system value-sets means if a non-standard list is required, these will need to be created as a custom value-set alongside the system.

Lots of changes between v1 and v2

Cart

The cart service manages the shopping cart for users in the webshop. The service uses the order helper that calculates the accurate pricing and availability of all products and ensures that any incentive rules are applied realtime.

Key Cart changes in the v2 release

  • Due to the new rules engine, the cart service has been significantly modified to work with the new manner of calculating product carts and orders.
  • In this process, the relevant order fields have been standardized to meet the current platform requirements such as capitalization.

Crossupsell

Manages the related product relationships that are frequently used to up-sell in the customer journeys.

These exist as a sub-object on a product and can be populated with a number of different relationships.

There’s a type of crossupsell which is one of:

  • ACCESSORIES
  • ALTERNATIVES
  • OPTIONS
  • PARTS
  • RELATED

In addition, the service supports a custom sub-type that can be used to create groups within these types supporting incredibly flexible implementation patterns.

Key Crossupsell changes in the v2 release

  • Introduction of subtype support in both the API as well as the backoffice UI

Order & Order helper

The order service processes incoming quotations and orders. Utilizing the rule builder as part of the order helper, the order service calculates the correct product values to ensure that orders are placed and processed correctly.

Key Order changes in the v2 release

  • Due to the new rules engine, the order service has been significantly modified to work with the new manner of calculating orders.
  • In this process, the relevant order fields have been standardized to meet the current platform requirements such as capitalization.

The product search service provides the extensive search functionality for products in both the webshop as well as the backoffice. Based on a scalable search index, the service takes the plethora of product data and attributes to power searches across even the largest of product catalogs.

Key Product Search changes in the v2 release

  • Most of the changes are to bring it inline with the updates to the product and catalog services.
  • No major changes to functionality with this release.

Surcharges

The surcharges service provides the ability to add a standardized fee to any product purchase. This is applied in the order and is most frequently used for deposits on recyclable products, but has many other potential use cases.

Key Surcharges changes in the v2 release

  • The service is in v2 fully supported by the backoffice UI.

Tax

The tax service adds VAT (or equivalent sales tax) to purchases made through the webshop. With the ability to define tax on multiple levels for each supported country, the tax service allows for the webshop to always charge the correct tax values.

There is additionally ICP support for EU countries that allows non-taxable purchases to take place where applicable.

Key Tax changes in the v2 release

  • The service is in v2 fully supported by the backoffice UI.
  • The backoffice currently displays the short-code entries for tax codes that will be modified with the descriptive labels.

User Management

The user service manages all webshop users (and no longer manages the internal backoffice users). These users are contained within a structure of folders and are one of:

  • Companies
  • Contacts
  • Customers

Companies being entities that hold information such as payment methods, addresses and attributes, but do not have login information. Contacts are the users (people) within a company that can act on its behalf.

Customers are webshop users outside of a company and are typically used for B2C relationships.

Key User Management changes in the v2 release

  • The service is in v2 fully supported by the backoffice UI.
  • Backoffice / Admin users are no longer managed by this service.

Warehouse

The warehouse service provides a database of physical locations. This is frequently used for delivery and pickup locations that can be assigned opening hours and pickup conditions.

When combined with the carrier service and rule builder, this can provide an incredibly flexible shopping experience for end users.

Key Warehouse changes in the v2 release

  • The service is in v2 fully supported by the backoffice UI.

Only minor or no changes between v1 and v2

Address

The address service stores all address information for users, orders and warehouses.

Category

The category service contains the hierarchy of products in the catalog. Organized in a “tree structure”, products can be grouped in logical structures that are exposed in the webshop.

Currently we only support a single category in the platform, but this is planned to be superseded by a taxonomy service later in 2024 providing functionality to have multiple structures that can represent the products from their original source or for representation in different storefronts.

Checkout

Managing the checkout process, this service ensures the right data is collected and available to correctly process a new order.

Email

The email service sends out system emails for the platform. This is only a few currently supported mails including the registration and order confirmation emails.

External Reference

This service provides the ability to add a reference identifier to an object where the identifier is sourced from an external platform or application.

Inventory

The service that tracks stock volumes for products.

Media

The service that manages all media data including images and documents. While videos are also part of this service data model, the service does not host videos which need to be externally hosted and connected via a public URL.

Product Bundle

This service provides a manner to sell a group of products with the ability to add a discount to the purchase price of all the products together.

Version 2.4 - 26th March - preliminary

  • This is a minor release without any breaking changes
  • Expected downtime: none
  • Expected impact: Low but a lot of services will be deployed.

Bug Fixes

Fixed REST Search endpoints

We made updates to the Orderlist, ValueSet and PayMethod services to fix issues being experienced with the REST search endpoints preventing the correct data from always being returned.

During this change we also corrected the endpoints to PATCH from PUT to bring this inline with our other services.

Fixed calls to other services

We made a series of fixes to the Carrier and Order services to address some issues we were seeing with cross service queries and mutations.

Fixed partial update mutations

The partial update mutation problems being experienced on the Warehouse, Media and Product Bundle services has been resolved.

Authorization and User Management fixes

We've made a few changes across services to resolve inconsistencies. This includes:

  • Fixing sorting and roles on the user management service
  • Fixed required roles on queries for ProductSearch
  • Added auth guards to the Inventory service

Version 2.3 - 27th February (Preliminary Release Notification)

This is a minor release without any breaking changes.

Sort Order Fixes

We've made a series of updates regarding sort order validation. These mostly address some field type inconsistencies between services and introduce valid sorting to support our new backoffice user interface.

The changes have been rolled out to the following services:

  • PayMethods
  • Orderlists
  • User Management
  • Carriers
  • Categories

Surcharges Service

As a continuation from our previous release, we've added guards to the Surcharges service to bring it in line with the latest standard of our internal services. As before, this shouldn't have any impact on current project, but should you experience any access issues, please let us know.

We've also made a bugfix to this service resolving an issue with the input.type that was previously a string and is now an enum as expected.

Version 2.2 - 20th February 2024

This is a minor release without any breaking changes.

Orderlist & ValueSet Services

Added REST Endpoints to these services to accompany the GraphQL endpoints released last week.

These endpoints should be functional but are not yet fully documented, which will be added soon. The equivalent fields are part of the GraphQL documentation, but if you have any further questions, please reach out on our partner discord.

Carrier, Shop and Warehouse Services

We have enabled the authorization guards on these services to bring them into line with current platform requirements.

The authorization guards prevent unauthorized access to services by applying the available permissions from the API or user roles. If you experience any issues with accessing these services, please reach out to us.

Spare Parts Service

The SpareParts service was not updated this release after some minor issues were noticed during testing. This change will be queued for the next release

Version 2.1 - 12th February 2024

Paymethod Service

We've released the first version of the paymethod service that supports storing and managing different payment methods.

Gateway Service

Deployed the OrderStatus service to the full pipeline.

Warehouse Service

Made the opening and closing time details for Warehouses nullable to allow removing these details from an entry.

ValueSet Service

Fixed a few minor bugs related to ValueSetItem options and field types.

Orderlist Service

Finalized implementation by including Orderlist details in ProductSearch and UserManagement features.

Category Service

We're replaced the Sort Order enum with a common entry from the ValueSet Service.