Files
kontextwerk/api/collections/bigCommerceProduct.yml
2025-10-02 08:54:03 +02:00

274 lines
7.7 KiB
YAML

name: bigCommerceProduct
# This is just so its easier to reference BigCommerce products,
# its not intended to be used as a actual reference,
# just so its easier to reference products in TibiCMS
meta:
label:
de: Produkt
en: Product
views: &views
- type: cardList
mediaQuery: "(min-width: 1200px)"
selectionPriority: 1
fields:
- source: productName
filter: true
name:
de: Produktname
en: Product Name
- source: previewImage
filter: true
name:
de: Vorschaubild
en: Preview Image
- source: printfulProductId
filter: true
name:
de: Printful Produkt ID
en: Printful Product ID
- source: forcedWarning
filter: true
name:
de: Warnungsanzeige
en: Warning Display
- type: table
mediaQuery: "(min-width: 600px)"
columns:
- source: productName
- source: previewImage
- source: bigCommerceSKU
- source: printfulProductId
- source: forcedWarning
- type: simpleList
primaryText: previewImage
secondaryText: productName
tertiaryText: printfulProductId
tablist:
activeTab: generalDetails
tabs:
- name: generalDetails
label:
de: Allgemeine Details
en: General Details
subFields:
- source: productName
- source: previewImage
- source: bigCommerceSKU
- source: bigCommerceId
- name: edit
label:
de: Bearbeitbar
en: Editable
subFields:
- source: forcedWarning
- source: printfulProductId
- name: sizingChart
label:
de: Größentabelle
en: Sizing Chart
subFields:
- source: sizingChart
subNavigation:
- name: modal
views: *views
defaultCallback: # Standard-Callback-Funktion, die ausgeführt wird, wenn keine andere spezifiziert ist.
eval: | # Der Code wird als JavaScript evaluiert.
//js
(entry) => { // Diese Funktion nimmt den Eintrag (entry) als Argument.
parent.selectEntry(entry) // Die Funktion selectEntry auf dem übergeordneten Objekt wird mit dem Eintrag als Argument aufgerufen.
}
//!js
permissions:
public:
methods:
get: true
post: false
put: false
delete: false
user:
methods:
get: true
post: true
put: false
delete: false
token:${BIGCOMMERCE_WEBHOOK_TOKEN}:
methods:
get: true
post: true
put: true
delete: true
hooks:
put:
update:
type: javascript
file: hooks/product/put_update.js
post:
create:
type: javascript
file: hooks/product/post_create.js
get:
read:
type: javascript
file: hooks/product/get_read.js
return:
type: javascript
file: hooks/product/get_return.js
fields:
- name: bigCommerceSKU
type: string
meta:
label:
de: BigCommerce SKU
en: BigCommerce SKU
helperText:
de: Die SKU des Produkts in BigCommerce
en: The SKU of the product in BigCommerce
- name: bigCommerceId
type: number
meta:
label:
de: BigCommerce ID
en: BigCommerce ID
helperText:
de: Die ID des Produkts in BigCommerce
en: The ID of the product in BigCommerce
- name: printfulProductId
type: string
meta:
label:
de: Printful Produkt ID
en: Printful Product ID
helperText:
de: Die ID des Produkts in Printful
en: The ID of the product in Printful
- name: previewImage
type: string
meta:
label:
de: Vorschaubild
en: Preview Image
widget: imageURL
- name: productName
type: string
meta:
label:
de: Produktname
en: Product Name
- name: forcedWarning
type: string
meta:
label:
de: Warnungsanzeige
en: Warning Display
- name: sizingChart
type: object
meta:
label:
de: Größentabelle
en: Sizing Chart
subFields:
- name: imageURL
type: string
meta:
label:
de: Bild
en: Image
widget: imageURL
- name: imageDescription
type: string
meta:
label:
de: Bildbeschreibung
en: Image Description
widget: richtext
- name: generalDescription
type: string
meta:
label:
de: Allgemeine Beschreibung
en: General Description
widget: richtext
- name: availableSizes
type: string[]
meta:
label:
de: Verfügbare Größen
en: Available Sizes
widget: select
choices:
- name: XS
id: XS
- name: S
id: S
- name: M
id: M
- name: L
id: L
- name: XL
id: XL
- name: 2XL
id: 2XL
- name: 3XL
id: 3XL
- name: 4XL
id: 4XL
- name: 5XL
id: 5XL
- name: 6XL
id: 6XL
- name: columns
type: object[]
meta:
label:
de: Spalten
en: Columns
subFields:
- name: label
type: string
meta:
label:
de: Label ID
en: Label ID
widget: foreignKey
foreign:
collection: module
id: label
subNavigation: 0
render:
defaultCollectionViews: true
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- name: sizes
type: string[]
meta:
label:
de: Größen
en: Sizes
useDefaultArray: true
widget: string
helperText:
de: In CM, selbe reihenfolge wie in der availableSizes
en: In CM, same order as in availableSizes