Muis - Item Update
This function synchronizes item data from the Muis ERP system to App4Sales. It fetches core item details, stock levels, prices, images, and classifications. The data is pulled from the Muis SOAP API.
Data Source Configuration
The connector pulls data from a Muis SOAP web service. The specific endpoint is determined by the administration address configured in App4Sales. All data is retrieved by calling the GetStamtabelRecords method on the web service.
Items: Fetched from the
ARTtable. The connector filters for records whereCATEGORIEis 'A' andBLOKis 'N'. If the "Don't sync items marked as blocked for webshop" setting is enabled, it also filters forBLOKWEBSHOP= 'N'.Stock: Fetched from the
ARTMAGtable.Images: Fetched from the
ARTAFBtable. This step is skipped if the "Use images only from PIM" setting is enabled in App4Sales.Price Lists: Fetched from the
PRStable.Item Groups: Fetched from the
ARTGRPtable. Skipped if the "Don't sync itemgroups" setting is enabled.Item Collections: Fetched from the
ARTCOLandARTCKPtables. Skipped if the "Don't sync item collections" setting is enabled.
Data Mapping - Items
This table describes the mapping from the Muis ART table to the App4Sales item object.
App4Sales Field | Source Field (API) | Logic/Notes |
ItemCode |
| Directly mapped. |
Description |
| Directly mapped. |
EanCode |
| Directly mapped. |
SalesPrice |
| Directly mapped. This is the base sales price. |
PurchasePackageSize |
| Uses |
AcceptsDefaultDiscount |
| The value is inverted. If |
VatPercentage |
| The Muis VAT type is converted to a percentage:
|
VatIncluded | (None) | Hardcoded to 'E' (Exclusive). |
FreeItemFields |
| Populated from the 10 free fields in Muis. The field names are defined by the "Item freefield names" setting. A free field is only synced if it has both a configured name and a value. |
FreeSortField |
| If the "Item freefield to use as sort field" setting is configured to a number between 1 and 10, the corresponding free field's value is used to define a sort order. The final value is an integer representing the item's position in the sorted list. |
CreatedDate | (None) | Set to the timestamp of the synchronization. |
Domain Specifics
Stock & Availability
Stock information is retrieved from the ARTMAG table and aggregated per item.
App4Sales Field | Source Field (API) | Logic/Notes |
LastAvailableStock |
| Sum of 'Economic Stock' from all warehouse records for the item. |
ShelfStock |
| Sum of 'Available Stock' from all warehouse records for the item. |
ToBeReceived |
| Sum of 'Technical Stock' from all warehouse records for the item. |
ToBeDelivered | (None) | Hardcoded to 0. Not currently sourced from Muis. |
Price Logic
Price lists are built from the PRS table. The connector specifically syncs prices where the price type (SRT) is 'P' (Artikelprijs).
App4Sales Field (Price List) | Source Field (API) | Logic/Notes |
Code / Description |
| The name of the Muis price list. |
ItemCode |
| The item the price belongs to. |
Price |
| The price for the item on the specified price list. |
Image Handling
Images are fetched from the ARTAFB table unless disabled by the global "Use images only from PIM" setting. The image data is read directly from the AFBEELDING field.
Pictures are ordered based on the
STDflag, which marks the default picture for an item.The sync fetches images in batches, with the size controlled by the "Pagesize for picture synchronization" setting (defaults to 50).
Matrix & Attributes
The connector can create classifications (Item Classes) from three different sources in Muis: Item Groups, Item Collections, and Item Free Fields.
Item Groups: If not ignored, the connector creates an Item Class based on the item's assigned
ARTGRP. The class name can be customized with the "Itemgroup description" setting, otherwise it defaults to "Artikelgroep".Item Collections: If not ignored, the connector creates an Item Class for each collection linked to an item via the
ARTCKPtable. The class name can be customized with the "Collection description" setting, otherwise it defaults to "Artikelcollectie".Free Fields: The connector can turn specific item free fields into Item Classes. The "Free field names to use as item classes" setting determines which free fields are used and provides the names for the resulting Item Classes.
Related Settings & Prerequisites
Several connector settings influence the item synchronization process:
Don't sync items marked as blocked for webshop: If checked, items with the `BLOKWEBSHOP` flag set to 'J' in Muis will be excluded.
Don't sync itemgroups: If checked, item group information will not be processed.
Itemgroup description: Allows customizing the name of the Item Class created from item groups.
Don't sync item collections: If checked, item collection information will not be processed.
Collection description: Allows customizing the name of the Item Class created from item collections.
Item freefield names: A comma-separated list of names for the 10 available free fields. These names are used when displaying the free fields in App4Sales.
Free field names to use as item classes: A comma-separated list of item class names. Each name in the list corresponds to a free field (e.g., the first name to VRIJVELD1, the second to VRIJVELD2). If a name and a value are present, an item class is created.
Use alternative purchase package size (suggested sales size): If checked, the connector uses a different field from Muis for the purchase package size.
Item freefield to use as sort field (1 - 10): Specifies which free field (1 through 10) should be used to determine the item sort order in App4Sales.
Pagesize for picture synchronization: Defines how many pictures are fetched in a single batch to manage memory usage.