Custom fields glossary
Every custom field the plugin reads or writes, grouped by Shopware entity. There are three groups:
- Registered custom-field sets — created on plugin activation and visible/editable in the Shopware admin.
- Plugin-managed technical fields — written directly into the entity's
customFieldsJSON; not shown as labelled admin fields. - Pricing API runtime fields — provided to the storefront per product/position at request time; not persisted.
"Direction" indicates how the value gets there: Abacus → SW (written by sync), manual (filled by the integrator), or SW → Abacus (read during order export).
Registered custom-field sets
Product (abacus_custom_product)
| Field | Type | Direction | Purpose |
|---|---|---|---|
abacus_product_id | Number | Abacus → SW | Abacus product ID. Written during product sync; used to identify the product on order export and price lookups. |
abacus_product_variant_id | Number | Abacus → SW | Abacus variant ID. Used together with the product ID for the correct variant. |
Tax (abacus_custom_tax)
| Field | Type | Direction | Purpose |
|---|---|---|---|
abacus_tax_tax_id | Text | Manual | Abacus tax code ID. Filled by the integrator to map Shopware tax rates to Abacus; read during order export. |
Customer (abacus_custom_customer)
| Field | Type | Direction | Purpose |
|---|---|---|---|
abacus_customer_subject_id | Text | Abacus → SW | Abacus customer subject ID. Written by shopper sync. |
abacus_shopper_id | Text | Abacus → SW | Abacus shopper ID. Primary key for matching a Shopware customer to an Abacus shopper. |
abacus_debtor_number | Text | Abacus → SW | Abacus debtor number. Used for logged-in pricing (customer-specific prices) and on order export. |
Salutation (abacus_custom_salutation)
| Field | Type | Direction | Purpose |
|---|---|---|---|
abacus_salutation_id | Text | Manual | Abacus salutation ID. Filled by the integrator (language-aware in Shopware); used during customer import and order export. |
Sales unit (abacus_custom_unit)
| Field | Type | Direction | Purpose |
|---|---|---|---|
abacus_unit_id | Text | Manual / mapping | Maps a Shopware unit to an Abacus sales unit code; matched during product sync. |
Order (abacus_custom_order)
| Field | Type | Direction | Purpose |
|---|---|---|---|
abacus_order_id | Text | Abacus → SW | Abacus order ID. Written when the Abacus document is processed into an order. |
abacus_sales_order_id | Number | Abacus → SW | Abacus sales order ID. Used to link incoming order-status changes back to the Shopware order. |
abacus_order_sent | Checkbox | SW → Abacus | Set to true after the order is successfully exported to Abacus. |
Shipping method (abacus_custom_shipping_method)
Used only when "Send shipping costs as line-item" is enabled.
| Field | Type | Direction | Purpose |
|---|---|---|---|
abacus_shipping_method_id | Number | Manual | Abacus product ID representing the shipping method. |
abacus_shipping_method_variant_id | Number | Manual | Abacus variant ID for the shipping product. |
abacus_shipping_method_tax_id | Text | Manual | Abacus tax code ID for shipping. |
abacus_shipping_method_designation | Text | Manual | Designation/name of the shipping line item in Abacus. |
Sales channel (abacus_sales_channel, added via migration)
| Field | Type | Direction | Purpose |
|---|---|---|---|
abacus_sales_channel_is_used_for_abacus_sync | Boolean | Manual | Activates Abacus sync for a specific sales channel (multi-tenant / per-channel configuration). |
Plugin-managed technical fields
These are written directly into the entity customFields JSON and are not registered as labelled admin fields. Integrators should not set them manually.
| Field | Entity | Direction | Purpose |
|---|---|---|---|
abacus_address_id | customer_address | Abacus → SW | Abacus address (subject) ID stored on each billing/shipping address. Essential for mapping addresses on order export; written by shopper sync. |
abacus_product_fallback_price_<salesChannelId> | product | Abacus → SW | Gross fallback price written during product sync (per sales channel). Used by the price-cache warmup to select products that have an Abacus price (> 0). |
abacus_product_fallback_net_price_<salesChannelId> | product | Abacus → SW | Net fallback price written during product sync. Currently not consumed by any plugin logic. |
Pricing API runtime fields
Provided by the Pricing API to the storefront for each product/position at request time. These are part of the API response payload, not persisted custom fields.
| Field | Direction | Purpose |
|---|---|---|
abacus_price_type | Abacus → storefront | Which Abacus price type the price came from: List (Standard), Graduation, Special or Action. |
abacus_discount_details | Abacus → storefront | Rebate details for the position: type (percentage/amount), value, and discountType (price type the rebate came from). |
abacus_default_guest_price | Abacus → storefront | The guest (not-logged-in) price, included when a logged-in customer has a special price set. |
