Customer Special Pricing API allows users to create or update customer special pricing records in Fusion.
REQUIRED FUSION VERSION 3.59.30.0 or HIGHER
Customer Special Pricing API supports the PUT and the POST method.
Create
POST and PUT
- Note: The PUT method will overwrite an existing record
https://api.karmak.io/api/unity/{version}/unityapi/CustomerSpecialPricing/Create
Update
PUT
https://api.karmak.io/api/unity/{version}/unityapi/CustomerSpecialPricing/Update
BUSINESS RULES
Customer Special Pricing records created via an API must define a Pricing Target and a Pricing Strategy.
- Only one Pricing Target can be passed in the request.
- Only one Pricing Strategy can be passed in the request.
- Both a Pricing Target and a Pricing Strategy must be passed.
Pricing Target
The target to which the record will apply, either a Customer Price Type, or Customer.
Customer Price Type
To create or update a customer special pricing record by Customer Price Type:
- Pass in the Customer Price Type to which the record applies
- A list of valid Customer Price Types can be obtained using the Quick List data access API
Customer
To create or update a customer special pricing record by Customer:
- Pass in the Customer Key and Customer base branch code to which the record applies
- A valid list of customers can be obtained using the Customer data access API
Pricing Strategy
The type of pricing for which the record is created (Cost Matrix, Velocity, Part Criteria)
Cost Matrix
To create or update a customer special pricing record for Cost Matrix Code:
- Pass in the Cost Matrix Code to which the record applies.
- A list of valid Cost Matrix Codes can be obtained using the Quick List data access API.
Velocity
To create or update a customer special pricing record by Velocity Type Code:
- Pass in the Velocity Code Type to which the record applies.
- A valid list of Velocity Type Codes can be obtained using the VelocityCodeTypes data access API.
Part Criteria
To create or update a customer special pricing record by Price Data:
- There are multiple pricing paths in the part criteria strategy.
- Note: in order to create or update Part Number pricing, you must also pass a price level or a Contract Price
Data Element | Business Rules |
---|---|
PartsLevel | Must be one of the following: Replacement Cost, Price 7, Price 6, Price 5, Price 4, Price 3, Price 2, Price 1, List |
ServiceUsesPartsPricing | |
ServiceLevel | Passed only when Service Uses Parts Pricing = False |
Multiplier | If passed, must be greater than 0. |
SupplierCode | If Supplier is passed, Price Group must not be present. |
PriceGroup | If Price Group is passed, Supplier must not be present. |
PartType | Must be one of the following: Part, Exchange, Core |
StockClass | Must not exceed 10 characters. |
Code1 | Must not exceed 10 characters. |
Code2 | Must not exceed 10 characters. |
ExpirationDate | |
PartNumber | Must be valid Fusion part. |
Price | If Price Level is passed, Contract Price must not be present. |
InternalNote | Must not exceed 100 characters. |
AlwaysUseContractPrice | When setting a price for a customer, determine whetheror not to always use contract price |
PricingTarget | |
CustomerKey | |
CustomerBaseBranchCode | |
CustomerPriceType | |
CostMatrixCode | |
VelocityCode |
Request Samples
If you call the POST method, an existing record is NOT overridden, if you call PUT method then override occurs
The general structure of the payload is as follows:
[
{
"ExpirationDate": "04/30/2020",
"PricingTarget": { },
"PricingStrategy": { },
"InternalNote": "This is my note."
}
]
First determine what type of Pricing Target you are going to use, either Customer or Customer Price Type.
Pricing Target is Customer, Pricing Strategy is Velocity Code example:
[
{
"ExpirationDate": "04/30/2020",
"PricingTarget": {
"CustomerKey": "12345",
"CustomerBaseBranchCode": "15"
},
"PricingStrategy": {
"VelocityCode": "01adb"
},
"InternalNote": "This is my note."
}
]
Pricing Target is Customer Price Type, Pricing Strategy is Velocity Code example:
[
{
"ExpirationDate": "04/30/2020",
"PricingTarget": {
"CustomerPriceType": "234abc"
},
"PricingStrategy": {
"VelocityCode": "01adb"
},
"InternalNote": "This is my note."
}
]
Pricing Target is Customer, Pricing Strategy is Cost Matrix Code:
[
{
"ExpirationDate": "04/30/2020",
"PricingTarget": {
"CustomerKey": "12345",
"CustomerBaseBranchCode": "15"
},
"PricingStrategy": {
"CostMatrixCode": "25abc"
},
"InternalNote": "This is my note."
}
]
Pricing Target is Customer Price Type, Pricing Strategy is Cost Matrix Code example:
[
{
"ExpirationDate": "04/30/2020",
"PricingTarget": {
"CustomerPriceType": "234abc"
},
"PricingStrategy": {
"CostMatrixCode": "25abc"
},
"InternalNote": "This is my note."
}
]
Pricing Target is Customer, Pricing Strategy is Part Criteria, Price Info is Parts Price Level:
[
{
"ExpirationDate": "04/30/2020",
"PricingTarget": {
"CustomerKey": "12345",
"CustomerBaseBranchCode": "15"
},
"PricingStrategy": {
"priceData": {
"ServiceUsesPartsPricing": "false",
"priceInfo": {
"PartsLevel": "Price 1",
"Multiplier": "1.5"
}
},
"partCriteria": {
"suppliers": [ //Only Supplier OR PriceGroup can be used not both
{
"SupplierCode": "bc23"
}
],
"PartType": "part",
"StockClass": "123abc",
"Code1": "456def",
"Code2": "ghj789",
"PartNumber": "3nva34" //If PartNumber is used then at least one Supplier is required
}
},
"InternalNote": "This is my note."
}
]
Pricing Target is Customer, Pricing Strategy is Part Criteria, Price Info is Service Price Level:
[
{
"ExpirationDate": "04/30/2020",
"PricingTarget": {
"CustomerKey": "12345",
"CustomerBaseBranchCode": "15"
},
"PricingStrategy": {
"priceData": {
"ServiceUsesPartsPricing": "false",
"priceInfo": {
"ServiceLevel": "Price 1",
"Multiplier": "1.5"
}
},
"partCriteria": {
"suppliers": [ //Only Supplier OR PriceGroup can be used not both
{
"SupplierCode": "bc23"
}
],
"PartType": "part",
"StockClass": "123abc",
"Code1": "456def",
"Code2": "ghj789",
"PartNumber": "3nva34" //If PartNumber is used then at least one Supplier is required
}
},
"InternalNote": "This is my note."
}
]
Pricing Target is Customer, Pricing Strategy is Part Criteria, Price Info is Contract Price:
[
{
"ExpirationDate": "04/30/2020",
"PricingTarget": {
"CustomerKey": "12345",
"CustomerBaseBranchCode": "15"
},
"PricingStrategy": {
"priceData": {
"ServiceUsesPartsPricing": "false",
"priceInfo": {
"Price": "1.00"
}
},
"partCriteria": {
"priceGroups": [ //Only Supplier OR PriceGroup can be used not both
{
"PriceGroup": "87asdf"
}
],
"PartType": "part",
"StockClass": "123abc",
"Code1": "456def",
"Code2": "ghj789",
"PartNumber": "3nva34" //If PartNumber is used then at least one Supplier is required
}
},
"InternalNote": "This is my note."
}
]
Pricing Target is Customer Price Type, Pricing Strategy is Part Criteria, Price Info is Parts Price Level:
[
{
"ExpirationDate": "04/30/2020",
"PricingTarget": {
"CustomerPriceType": "234abc"
},
"PricingStrategy": {
"priceData": {
"ServiceUsesPartsPricing": "false",
"priceInfo": {
"PartsLevel": "Price 1",
"Multiplier": "1.5"
}
},
"partCriteria": {
"priceGroups": [ //Only Supplier OR PriceGroup can be used not both
{
"PriceGroup": "87asdf"
}
],
"PartType": "part",
"StockClass": "123abc",
"Code1": "456def",
"Code2": "ghj789",
"PartNumber": "3nva34" //If PartNumber is used then at least one Supplier is required
}
},
"InternalNote": "This is my note."
}
]
Pricing Target is Customer Price Type, Pricing Strategy is Part Criteria, Price Info is Service Price Level:
[
{
"ExpirationDate": "04/30/2020",
"PricingTarget": {
"CustomerPriceType": "234abc"
},
"PricingStrategy": {
"priceData": {
"ServiceUsesPartsPricing": "false",
"priceInfo": {
"ServiceLevel": "Price 1",
"Multiplier": "1.5"
}
},
"partCriteria": {
"suppliers": [ //Only Supplier OR PriceGroup can be used not both
{
"SupplierCode": "bc23"
}
],
"PartType": "part",
"StockClass": "123abc",
"Code1": "456def",
"Code2": "ghj789",
"PartNumber": "3nva34" //If PartNumber is used then at least one Supplier is required
}
},
"InternalNote": "This is my note."
}
]
Pricing Target is Customer Price Type, Pricing Strategy is Part Criteria, Price Info is Contract Price:
[
{
"ExpirationDate": "04/30/2020",
"PricingTarget": {
"CustomerPriceType": "234abc"
},
"PricingStrategy": {
"priceData": {
"ServiceUsesPartsPricing": "false",
"priceInfo": {
"Price": "1.00"
"AlwaysUseContractPrice" : true
}
},
"partCriteria": {
"suppliers": [ //Only Supplier OR PriceGroup can be used not both
{
"SupplierCode": "bc23"
}
],
"PartType": "part",
"StockClass": "123abc",
"Code1": "456def",
"Code2": "ghj789",
"PartNumber": "3nva34" //If PartNumber is used then at least one Supplier is required
}
},
"InternalNote": "This is my note."
}
]