Skillnad mellan versioner av "Surface"
Från Vendre Help
(→Calls) |
(→POST: extended-product-data-field) |
||
| (20 mellanliggande versioner av 2 användare visas inte) | |||
| Rad 1: | Rad 1: | ||
=Surface API= | =Surface API= | ||
| − | Our StoreFront API to fetch data through Vue or other comparable frameworks. | + | Our StoreFront API to fetch data through Vue or other comparable frameworks.<br /> |
| − | |||
Basepath for all calls, '''/surface/1/''', using version 1.<br /> | Basepath for all calls, '''/surface/1/''', using version 1.<br /> | ||
eg. '''/surface/1/request-password-change''' | eg. '''/surface/1/request-password-change''' | ||
| − | == | + | ==How to use== |
| − | + | $.post( | |
| − | + | "/surface/1/appforsales/history/invoice", | |
| + | { invoice_number : '000192' }, | ||
| + | function(data) { | ||
| + | console.log(data); | ||
| + | } | ||
| + | ); | ||
| − | === | + | $.post( |
| − | + | "/surface/1/extended-product-data-field", | |
| − | + | { "product_id": 3879, "fields": [{ "id": 11 }] }, | |
| + | function(data) { | ||
| + | console.log(data); | ||
| + | } | ||
| + | ); | ||
| + | |||
| + | ==NOTE== | ||
| + | You need an active session to use the Surface-call, otherwise you will get a 401-response. (If you're using Postman or Insomnia). So work on it from the browser. | ||
| + | |||
| + | ==Available Surface Calls== | ||
| + | All calls to appforsales/history and appforsales/realtime are cached for a short time. | ||
| + | |||
| + | ===POST: appforsales/history/orders=== | ||
| + | rows | ||
| + | offset | ||
| + | |||
| + | ===POST: appforsales/history/order=== | ||
| + | order_number | ||
| + | |||
| + | ===POST: appforsales/history/invoices=== | ||
| + | rows | ||
| + | offset | ||
| + | |||
| + | ===POST: appforsales/history/invoice=== | ||
| + | invoice_number | ||
| + | |||
| + | ===POST: appforsales/realtime/orders=== | ||
| + | |||
| + | ===POST: appforsales/realtime/order=== | ||
| + | order_number | ||
| + | |||
| + | ===POST: appforsales/realtime/invoices=== | ||
| + | |||
| + | ===POST: appforsales/realtime/invoice=== | ||
| + | invoice_number | ||
| + | |||
| + | ===GET: bankid/status=== | ||
| + | status från bankid-sessionen | ||
| + | ===GET: bankid/qr-token=== | ||
| + | qr från bankid-sessionen | ||
| + | ===POST: bankid/login=== | ||
| + | utgår från bankid som används | ||
| + | ===POST: custom-reports/report-request=== | ||
| + | unique_key | ||
| + | email | ||
| + | format | ||
| + | filters | ||
| + | Hämtar användaruppgifter från sessionen | ||
| + | ===GET: custom-reports/report=== | ||
| + | *Bör ändras till GET-variabler | ||
| + | unique_key | ||
| + | format | ||
| + | fiilters | ||
| + | ===POST: extended-product-data-field=== | ||
| + | BODY: { "product_id": 5555, "fields": [{ "id": 4553, "languages": [4,5,8] }, { "id": 1234 }] } | ||
| + | |||
| + | Examples, (With array and languages) | ||
| + | // Send multiple fields with language specification | ||
| + | fetch('/surface/1/extended-product-data-field', { | ||
| + | method: 'POST', | ||
| + | headers: { | ||
| + | 'Content-Type': 'application/json' | ||
| + | }, | ||
| + | body: JSON.stringify({ | ||
| + | fields: [ | ||
| + | { | ||
| + | id: 1, | ||
| + | languages: [1, 2, 3] // Specific languages id | ||
| + | }, | ||
| + | { | ||
| + | id: 5, | ||
| + | languages: [1, 2] | ||
| + | } | ||
| + | ], | ||
| + | product_id: 123 | ||
| + | }) | ||
| + | }) | ||
| + | .then(response => response.json()) | ||
| + | .then(data => console.log(data)); | ||
| + | |||
| + | Response | ||
| + | { | ||
| + | "123": { | ||
| + | "1": { | ||
| + | "1": "Value on language 1", | ||
| + | "2": "Value on language 2", | ||
| + | "3": "Value on language 3" | ||
| + | }, | ||
| + | "5": { | ||
| + | "1": "Value on language 1", | ||
| + | "2": "Value on language 2" | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | |||
| + | Examples, (With list and preset language) | ||
| + | // Send comma-separated field IDs as string | ||
| + | fetch('/surface/1/extended-product-data-field', { | ||
| + | method: 'POST', | ||
| + | headers: { | ||
| + | 'Content-Type': 'application/json' | ||
| + | }, | ||
| + | body: JSON.stringify({ | ||
| + | fields: "1,5,10", // Comma separated string | ||
| + | product_id: 123 | ||
| + | }) | ||
| + | }) | ||
| + | .then(response => response.json()) | ||
| + | .then(data => console.log(data)); | ||
| + | |||
| + | Response | ||
| + | { | ||
| + | "123": { | ||
| + | "1": "Value", | ||
| + | "5": "Another value", | ||
| + | "10": "Third value" | ||
| + | } | ||
| + | } | ||
| + | |||
| + | ===POST: login-link=== | ||
| + | email | ||
| + | Hämtar marknad och språk från sessionen | ||
| + | ===GET: product-list=== | ||
| + | hash_id | ||
| + | ===POST: product-list/shared-cart=== | ||
| + | hämtar varukorgen från sessionen | ||
| + | ===GET: products/associated=== | ||
| + | order_by | ||
| + | product_id | ||
| + | replace_variants | ||
| + | type_id | ||
| + | ===GET: products/price-log-prices=== | ||
| + | id | ||
| + | ===GET: products/stock=== | ||
| + | id | ||
| + | ===GET: products/configuration-price=== | ||
| + | product_id | ||
| + | configuration | ||
| + | quantity | ||
| + | <br> | ||
| + | ===POST: request-for-quotation=== | ||
| + | hämtar kundid och språk från sessionen | ||
| + | <br> | ||
| + | ===POST: request-password-change=== | ||
| + | email | ||
| + | id | ||
| + | hämtar marknad och språk från sessionen | ||
| + | ===POST: reservations=== | ||
| + | name | ||
| + | email | ||
| + | phone | ||
| + | Products | ||
| + | partner_id | ||
| + | data | ||
| + | Hämtar kundid från sessionen | ||
| + | Postar allt man skickar in | ||
| + | ===GET: shopping-cart=== | ||
| + | Hämtar varukorgen från sessionen | ||
| + | ===DELETE: shopping-cart=== | ||
| + | Tömmer varukorgen för sessionen | ||
| + | ===GET: shopping-cart/products=== | ||
| + | Hämtar varukorgen från sessionen | ||
| + | ===POST: shopping-cart/products=== | ||
| + | products | ||
| + | ===GET: tweakwise/featured-products=== | ||
| + | display_id | ||
| + | ===POST: vql=== | ||
| + | Separat dokumentation för Vendre Query Language | ||
| + | https://support.vendre.io/i/for-utvecklare-868/vql-10-vendre-query-language.html | ||
| + | ===POST: voucher/value=== | ||
| + | voucher | ||
| + | Hämtar currency från sessionen | ||
| + | ===GET: briqpay/signup/b2b=== | ||
| + | ===GET: briqpay/signup/b2c=== | ||
| + | ===POST: briqpay/pay=== | ||
| + | ===POST: briqpay/pay/validate=== | ||
| + | ===POST: briqpay/approve=== | ||
| + | ===POST: briqpay/reject/hard=== | ||
| + | ===POST: briqpay/reject/soft=== | ||
Nuvarande version från 19 december 2025 kl. 13.23
Innehåll
- 1 Surface API
- 1.1 How to use
- 1.2 NOTE
- 1.3 Available Surface Calls
- 1.3.1 POST: appforsales/history/orders
- 1.3.2 POST: appforsales/history/order
- 1.3.3 POST: appforsales/history/invoices
- 1.3.4 POST: appforsales/history/invoice
- 1.3.5 POST: appforsales/realtime/orders
- 1.3.6 POST: appforsales/realtime/order
- 1.3.7 POST: appforsales/realtime/invoices
- 1.3.8 POST: appforsales/realtime/invoice
- 1.3.9 GET: bankid/status
- 1.3.10 GET: bankid/qr-token
- 1.3.11 POST: bankid/login
- 1.3.12 POST: custom-reports/report-request
- 1.3.13 GET: custom-reports/report
- 1.3.14 POST: extended-product-data-field
- 1.3.15 POST: login-link
- 1.3.16 GET: product-list
- 1.3.17 POST: product-list/shared-cart
- 1.3.18 GET: products/associated
- 1.3.19 GET: products/price-log-prices
- 1.3.20 GET: products/stock
- 1.3.21 GET: products/configuration-price
- 1.3.22 POST: request-for-quotation
- 1.3.23 POST: request-password-change
- 1.3.24 POST: reservations
- 1.3.25 GET: shopping-cart
- 1.3.26 DELETE: shopping-cart
- 1.3.27 GET: shopping-cart/products
- 1.3.28 POST: shopping-cart/products
- 1.3.29 GET: tweakwise/featured-products
- 1.3.30 POST: vql
- 1.3.31 POST: voucher/value
- 1.3.32 GET: briqpay/signup/b2b
- 1.3.33 GET: briqpay/signup/b2c
- 1.3.34 POST: briqpay/pay
- 1.3.35 POST: briqpay/pay/validate
- 1.3.36 POST: briqpay/approve
- 1.3.37 POST: briqpay/reject/hard
- 1.3.38 POST: briqpay/reject/soft
Surface API
Our StoreFront API to fetch data through Vue or other comparable frameworks.
Basepath for all calls, /surface/1/, using version 1.
eg. /surface/1/request-password-change
How to use
$.post(
"/surface/1/appforsales/history/invoice",
{ invoice_number : '000192' },
function(data) {
console.log(data);
}
);
$.post(
"/surface/1/extended-product-data-field",
{ "product_id": 3879, "fields": [{ "id": 11 }] },
function(data) {
console.log(data);
}
);
NOTE
You need an active session to use the Surface-call, otherwise you will get a 401-response. (If you're using Postman or Insomnia). So work on it from the browser.
Available Surface Calls
All calls to appforsales/history and appforsales/realtime are cached for a short time.
POST: appforsales/history/orders
rows offset
POST: appforsales/history/order
order_number
POST: appforsales/history/invoices
rows offset
POST: appforsales/history/invoice
invoice_number
POST: appforsales/realtime/orders
POST: appforsales/realtime/order
order_number
POST: appforsales/realtime/invoices
POST: appforsales/realtime/invoice
invoice_number
GET: bankid/status
status från bankid-sessionen
GET: bankid/qr-token
qr från bankid-sessionen
POST: bankid/login
utgår från bankid som används
POST: custom-reports/report-request
unique_key email format filters Hämtar användaruppgifter från sessionen
GET: custom-reports/report
- Bör ändras till GET-variabler
unique_key format fiilters
POST: extended-product-data-field
BODY: { "product_id": 5555, "fields": [{ "id": 4553, "languages": [4,5,8] }, { "id": 1234 }] }
Examples, (With array and languages)
// Send multiple fields with language specification
fetch('/surface/1/extended-product-data-field', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
fields: [
{
id: 1,
languages: [1, 2, 3] // Specific languages id
},
{
id: 5,
languages: [1, 2]
}
],
product_id: 123
})
})
.then(response => response.json())
.then(data => console.log(data));
Response
{
"123": {
"1": {
"1": "Value on language 1",
"2": "Value on language 2",
"3": "Value on language 3"
},
"5": {
"1": "Value on language 1",
"2": "Value on language 2"
}
}
}
Examples, (With list and preset language)
// Send comma-separated field IDs as string
fetch('/surface/1/extended-product-data-field', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
fields: "1,5,10", // Comma separated string
product_id: 123
})
})
.then(response => response.json())
.then(data => console.log(data));
Response
{
"123": {
"1": "Value",
"5": "Another value",
"10": "Third value"
}
}
POST: login-link
email Hämtar marknad och språk från sessionen
GET: product-list
hash_id
POST: product-list/shared-cart
hämtar varukorgen från sessionen
GET: products/associated
order_by product_id replace_variants type_id
GET: products/price-log-prices
id
GET: products/stock
id
GET: products/configuration-price
product_id configuration quantity
POST: request-for-quotation
hämtar kundid och språk från sessionen
POST: request-password-change
email id hämtar marknad och språk från sessionen
POST: reservations
name email phone Products partner_id data Hämtar kundid från sessionen Postar allt man skickar in
GET: shopping-cart
Hämtar varukorgen från sessionen
DELETE: shopping-cart
Tömmer varukorgen för sessionen
GET: shopping-cart/products
Hämtar varukorgen från sessionen
POST: shopping-cart/products
products
GET: tweakwise/featured-products
display_id
POST: vql
Separat dokumentation för Vendre Query Language https://support.vendre.io/i/for-utvecklare-868/vql-10-vendre-query-language.html
POST: voucher/value
voucher Hämtar currency från sessionen