Integration von Bigcommerce und Google Sheet über Zapier

bigcommerce

Zum Erstellen und Aktualisieren von Produkten.

Bigcommerce:-

BigCommerce ist eine E-Commerce-Plattform, mit der Unternehmen Online-Shops erstellen und verwalten können. Es bietet Tools für die Erstellung und Anpassung einer Website, die Verwaltung des Bestands, die Verarbeitung von Zahlungen und den Versand von Bestellungen. BigCommerce bietet auch Integrationen mit verschiedenen Tools von Drittanbietern, wie z. B. Buchhaltungssoftware und Marketing-Tools, um Unternehmen bei der effizienten Verwaltung ihres Online-Shops zu unterstützen.

Google Sheets:-

Google Sheets ist eine webbasierte Tabellenkalkulationsanwendung, die von Google entwickelt wurde. Sie ermöglicht es Nutzern, Tabellenkalkulationen online zu erstellen und zu bearbeiten und dabei in Echtzeit mit anderen Nutzern zusammenzuarbeiten. Es hat ähnliche Funktionen wie Microsoft Excel und kann für Aufgaben wie die Organisation von Daten, die Durchführung von Berechnungen und die Erstellung von Diagrammen und Grafiken verwendet werden. Sheets enthält auch integrierte Funktionen für die Arbeit mit Daten, wie z. B. Sortieren und Filtern, und kann mit anderen Google-Diensten wie Google Forms, Google Maps und Google Translate integriert werden. Es ist auch möglich, Google Sheets mit Hilfe von Google Script als grundlegende Datenbank zu verwenden.

Zapier:-

Zapier ist ein Tool, das Ihnen hilft, sich wiederholende Aufgaben zwischen zwei oder mehr Anwendungen zu automatisieren – es ist kein Code erforderlich, aber für komplexe Integrationen können wir Kodierung verwenden. Zapier kann eine zusätzliche App anweisen, eine bestimmte Aktion auszuführen (oder auszuführen), wenn ein Ereignis in der ersten App eintritt.

Um BigCommerce mit Google Sheets über Zapier zu integrieren, müssen Sie zunächst ein Konto bei BigCommerce und Zapier erstellen.

Once you have an account with both, you can then create a „Zap“ (automation) between the two platforms.

Im Folgenden werden die allgemeinen Schritte zur Einrichtung der Integration beschrieben:

Schritt 1: Melden Sie sich bei Ihrem Zapier-Konto an und klicken Sie auf die Schaltfläche „Make a Zap“.

Schritt 2: Wählen Sie Google Sheets als auslösende Anwendung und wählen Sie das Aktionsereignis, das Sie verwenden möchten (z. B. „Tabellenkalkulationszeile erstellen“).

Verbinden Sie Ihr Google Sheets-Konto mit Zapier, indem Sie Ihre Kontoanmeldedaten angeben

Schritt 3: Richten Sie die Vorlage für die Übermittlung der Daten zwischen BigCommerce und Google Sheets ein, passen Sie die Felder nach Bedarf an und testen Sie die Aktion, um sicherzustellen, dass sie korrekt funktioniert oder nicht.

Schritt 4: Fügen Sie nach dem Testen ein Filterwerkzeug hinzu, um die Daten zu filtern und sicherzustellen, dass der nächste Schritt der Erstellung von Produkten oder der Aktualisierung bestehender Produkte dient. (Sie können die Datumsspalte der Produkt-ID validieren, wenn die ID vorhanden ist, die zum Aktualisierungsprozess führt, oder wenn die ID nicht vorhanden ist, dann zum neuen Erstellungsprozess).

Filter-Tool: – Erlauben Sie einem Zap nur dann zu senden, wenn eine bestimmte Bedingung erfüllt ist. Sie können einen Filter verwenden, um eine Textnachricht nur dann zu senden, wenn eine E-Mail von einer bestimmten Adresse empfangen wird, z. B. wenn Sie eine Textnachricht senden möchten, sobald Sie eine neue E-Mail erhalten.

Zum Hinzufügen neuer Produkte (wenn die ID nicht vorhanden ist): –

Schritt 5: Wählen Sie das Codewerkzeug für den Aktionsprozess sowie die Sprache (Javascript) und ordnen Sie die Daten der Blattspalten mithilfe von Überschriften zu.

Und wenden Sie die Bedingung entsprechend der Anforderung an

Code zur Validierung der Daten:-


// shipping default= no
var mod = inputData.shipping
var shipping
if(mod == null || mod == „No“){
shipping=0
}
if(mod==“Yes“){
shipping=1
}

//product Visiblity default=no
var Visible= inputData.Visible
var modVisible
if(Visible== null || Visible== „No“){
modVisible =0
}
if(Visible==“Yes“){
modVisible =1
}

//depth(thickness default=1)
var modDepth = inputData.Depth
var depth
if(modDepth == null || modDepth == „1“){
depth=1
}
else{
depth=modDepth
}

//availability (default=available)
var modavailability = inputData.availabilityData
var availability
var preOrderDate
var preorderOnly
if(modavailability == „No“){
availability=“disabled“
preOrderDate=“NoData“
preorderOnly=“NoData“
}
else if(modavailability==“Yes“){
availability=“available“
preOrderDate=“NoData“
preorderOnly=“NoData“
}
else if(modavailability == null || modavailability==““){
availability=“NoData“
preOrderDate=“NoData“
preorderOnly=“NoData“
}
else{
availability=“preorder“
preOrderDate=modavailability
preorderOnly=“True“
}

//taxclass(Default Tax Class = P)
var modtaxclass = inputData.Type
var taxClass
if(modtaxclass == „D“){
taxClass=10
}
if(modtaxclass == „P“){
taxClass=0
}


//customFields
var modCustomField = inputData.customfields
var customFieldData
if(modCustomField == null || modCustomField == „“){
customFieldData=1
}
else{
customFieldData=modCustomField
}

// SKU validate
var checkSKU=inputData.sku
var finalSKU

if(checkSKU==““ || checkSKU==null){
finalSKU =“NoData“
}else{
finalSKU=checkSKU
}

// Description validate
var checkDescription=inputData.description
var finalDescription

if(checkDescription==““ || checkDescription==null){
finalDescription=“NoData“
}else{
finalDescription=checkDescription
}

// bin_picking_number validate
var checkBin_picking_number=inputData.bin_picking_number
var finalBin_picking_number

if(checkBin_picking_number==““ || checkBin_picking_number==null){
finalBin_picking_number=“NoData“
}else{
finalBin_picking_number=checkBin_picking_number
}


// brand_name validate
var checkBrand_name=inputData.brand_name
var finalBrand_name

if(checkBrand_name==““ || checkBrand_name==null){
finalBrand_name=“NoData“
}else{
finalBrand_name=checkBrand_name
}

//inventory_tracking  validate
var checkInventory_tracking=inputData.inventory_tracking
var finalInventory_tracking

if(checkInventory_tracking==““ || checkInventory_tracking==null){
finalInventory_tracking=“NoData“
}else{
finalInventory_tracking=checkInventory_tracking
}


//current_stock  validate
var checkCurrent_stock=inputData.current_stock
var finalCurrent_stock

if(checkCurrent_stock==““ || checkCurrent_stock==null){
finalCurrent_stock=100000000000
}else{
finalCurrent_stock=checkCurrent_stock
}

//low_stock validate
var checkLow_stock=inputData.low_stock
var finalLow_stock

if(checkLow_stock==““ || checkLow_stock==null){
finalLow_stock=100000000000
}else{
finalLow_stock=checkLow_stock
}


//width validate
var checkWidth=inputData.width
var finalWidth

if(checkWidth==““ || checkWidth==null){
finalWidth=100000000000
}else{
finalWidth=checkWidth
}


//heightvalidate
var checkHeight=inputData.height
var finalHeight

if(checkHeight==““ || checkHeight==null){
finalHeight=100000000000
}else{
finalHeight=checkHeight
}


//search_keywords validate
var checkSearch_keywords=inputData.search_keywords
var finalSearch_keywords

if(checkSearch_keywords==““ || checkSearch_keywords==null){
finalSearch_keywords =“NoData“
}else{
finalSearch_keywords =checkSearch_keywords
}


//meta_keywordsvalidate
var checkMeta_keywords=inputData.meta_keywords
var finalMeta_keywords

if(checkMeta_keywords==““ || checkMeta_keywords==null){
finalMeta_keywords=“NoData“
}else{
finalMeta_keywords=checkMeta_keywords
}


//meta_description svalidate
var checkMeta_description=inputData.meta_description
var finalMeta_description

if(checkMeta_description==““ || checkMeta_description==null){
finalMeta_description=“NoData“
}else{
finalMeta_description=checkMeta_description
}


//SortOrder validate
var checkSortOrder=inputData.SortOrder
var finalSortOrder

if(checkSortOrder==““ || checkSortOrder==null){
finalSortOrder=100000000000
}else{
finalSortOrder=checkSortOrder
}

/*
//existingCat validate
var checkExistingCat=inputData.existingCat
var finalExistingCat

if(checkExistingCat==““ || checkExistingCat==null){
finalExistingCat=“NoData“
}else{
finalExistingCat=checkExistingCat
}


//unassignCat validate
var checkUnassignCat=inputData.unassignCat
var finalUnassignCat

if(checkUnassignCat==““ || checkUnassignCat==null){
finalUnassignCat=“NoData“
}else{
finalUnassignCat=checkUnassignCat
}

*/

//assignCat validate
var checkAssignCat=inputData.assignCat
var finalAssignCat

if(checkAssignCat==““ || checkAssignCat==null){
finalAssignCat=“NoData“
}else{
finalAssignCat=checkAssignCat
}


//upc validate
var checkUpc=inputData.upc
var finalUpc

if(checkUpc==““ || checkUpc==null){
finalUpc=“NoData“
}else{
finalUpc=checkUpc
}

output = {shipping, modVisible, depth, availability, preOrderDate, preorderOnly, taxClass, customFieldData, finalSKU, finalDescription, finalBin_picking_number, finalBrand_name, finalInventory_tracking, finalCurrent_stock, finalLow_stock, finalWidth, finalHeight, finalSearch_keywords, finalMeta_keywords, finalMeta_description, finalSortOrder, finalAssignCat, finalUpc}

Schritt 6: Wählen Sie anschließend ein weiteres Code-Tool für die neue Aktion aus und wählen Sie die Sprache Python, um die Anforderungsaktion zum Posten des Produkts durchzuführen sowie alle Daten (die aus dem Javascript-Abschnitt stammen) mithilfe von Headern zuzuordnen.

Code zur Verwendung der Abfragemethode:-

import requests
import json

url = „https://api.bigcommerce.com/stores/StoreHash/v3/catalog/products“

Name=str(input_data[‚Name‘])
sku=str(input_data[’sku‘])
description=str(input_data[‚description‘])
weight=float(input_data[‚weight‘])
depth=float(input_data[‚depth‘])
width=float(input_data[‚width‘])
height=float(input_data[‚height‘])
price=float(input_data[‚price‘])
bin_picking_number=str(input_data[‚bin_picking_number‘])
brand_name=str(input_data[‚brand_name‘])
inventory_level=int(input_data[‚current_stock‘])
inventory_warning_level=int(input_data[‚low_stock‘])
availability=str(input_data[‚availability‘])
preOrderDate=str(input_data[‚preorder_release_date‘])
#check preorder Boollen
preorderOnly=str(input_data[‚is_preorder_only‘])
if preorderOnly == „True“:
    resPreOrderOnly=True
else:
    resPreOrderOnly=None


search_keywords=str(input_data[’search_keywords‘])
meta_description=str(input_data[‚meta_description‘])
sortOrder = int(input_data[‚SortOrder‘])
upc=str(input_data[‚upc‘])
taxClass=int(input_data[‚taxClass‘])
#check shipping
shipping=int(input_data[’shipping‘])

if shipping==0:
    mod=False
if shipping==1:
    mod=True

#check  product is_visible
productVisible=int(input_data[‚productVisible‘])

if productVisible==0:
    productVisibleMod=False
if productVisible==1:
    productVisibleMod=True

#check product Type
productType=str(input_data[‚Type‘])

if productType==“P“:
    type=“physical“
if productType==“D“:
    type=“digital“

#check inventory tracking
inventoy=str(input_data[‚inventory_tracking‘])
if inventoy==“No“:
  inventoryData=“none“
elif inventoy==“Yes“:
  inventoryData=“product“
else:
  inventoryData=inventoy

# meta_keywords converting string to array[string]
meta_keywords = str(input_data[‚meta_keywords‘])
if meta_keywords != ‚NoData‘:
  metaWords = meta_keywords.split(‚,‘)
else:
  metaWords=[]


#———-category———–

def remove_matching_values(arr1):
  #set holds non duplicate values
  set1 = set(arr1)
  return list(set1)
#fetching data from sheet to add category to product
addData = str(input_data[‚assign‘])
# Split the string into a list of elements
addDataArr = addData.split(‚,‘)

arr1 = []
for x in addDataArr:
  if x.isdigit():
    arr1.append(int(x))

# passing parameter
result = remove_matching_values(arr1)



#———-customfields——-
rawCustomData = str(input_data[‚customFields‘])

if rawCustomData!=“1″:
  data_list = rawCustomData.split(‚,‘)
  rawResult = []
  for item in data_list:
  name, value = item.split(‚:‘)
  rawResult.append({’name‘: name, ‚value‘: value})
  customData=list(rawResult)
else:
  rawResult = []
  customData=list(rawResult)

#PAYLOAD
rawPayload ={
    „name“: (f'{Name}‘),
    „type“: (f'{type}‘),
    „sku“: (f'{sku}‘),
    „description“: (f'{description}‘),
    „weight“: weight,
    „width“: width,
    „depth“: depth,
    „height“: height,
    „price“: price,
    „bin_picking_number“: (f'{bin_picking_number}‘),
    „brand_name“: (f'{brand_name}‘),
    „inventory_level“: inventory_level,
    „inventory_warning_level“: inventory_warning_level,
    „inventory_tracking“: (f'{inventoryData}‘),
    „is_free_shipping“: mod,
    „is_visible“: productVisibleMod,
    „availability“: (f'{availability}‘),
    „preorder_release_date“:(f'{preOrderDate}‘),
    „is_preorder_only“:resPreOrderOnly,
    „search_keywords“: (f'{search_keywords}‘),
    „meta_keywords“: metaWords,
    „meta_description“: (f'{meta_description}‘),
    „sort_order“: sortOrder,
    „categories“: result,
    „tax_class_id“: taxClass,
    „upc“:(f'{upc}‘),
    „custom_fields“:customData
  }
filtered_payload = {k: v for k, v in rawPayload.items() if v not in (None, „NoData“,[], 100000000000, „“)}
payload=json.dumps(filtered_payload)
headers = {
 ‚X-Auth-Token‘: ‚X Auth token‘,  # add your AuthToken between ‘’
  ‚Content-Type‘: ‚application/json‘,
  ‚Accept‘: ‚application/json‘
}

response1 = requests.request(„POST“, url, headers=headers, data=payload)

Wichtige Dinge

filtered_payload = {k: v for k, v in rawPayload.items() if v not in (None, „NoData“,[], 100000000000, „“)}

Durch die Verwendung dieser filtered_payload werden ungültige Daten herausgefiltert und ihre Felder aus der Nutzlast entfernt.

URL:- Geben Sie die URL Ihres Shops ein

X-Auth-Token:- Geben Sie Ihren X-Auth-Token ein

Hinweis:- Bei der Eingabe der Daten bitte diese Art von Eingaben nicht verwenden

None, „NoData“,[], 100000000000, „“   

Diese Art von Eingaben führt zu einem Fehler.

Zum Aktualisieren der Produkte (falls vorhanden): –

Schritt 5: Wählen Sie das Webhook-Tool, um die Informationen über das vorhandene Produkt zu erhalten, und geben Sie die Id in der Abfrage ein, und füllen Sie alle Anforderungen wie URL und Header aus.

Und auch Ereignis als GET auswählen

Webhooks-Tool:- Webhooks werden meist zur Vereinfachung der Kommunikation zwischen zwei Anwendungen verwendet, können aber auch zur Automatisierung von Infrastructure-as-code (IaC)-Workflows und für GitOps-Praktiken genutzt werden.

Schritt 6: Wählen Sie das Code-Tool und die JavaScript-Sprache, um die Daten zu validieren und die Spalten des Blattes mit Überschriften zu versehen.

Code zur Validierung der Daten:-

// Name validate
var checkName=inputData.Name
var finalName

if(checkName==““ || checkName==null){
finalName=“NoData“
}else{
finalName=checkName
}

//weight  validate
var checkWeight=inputData.Weight
var finalWeight

if(checkWeight==““ || checkWeight==null){
finalWeight=-100000000000
}else{
finalWeight=checkWeight
}

//Price  validate
var checkPrice=inputData.Price
var finalPrice

if(checkPrice==““ || checkPrice==null){
finalPrice=-100000000000
}else{
finalPrice=checkPrice
}

//taxclass(Default Tax Class = P)
var modtaxclass = inputData.Type
var taxClass
var finalType
if(modtaxclass == „D“){
taxClass=10
finalType=“D“
}
else if(modtaxclass == „P“){
taxClass=0
finalType=“P“
}
else{
taxClass=100000000000
finalType=“NoData“
}

// shipping default= no
var mod = inputData.shipping
var shipping
if(mod == „No“){
shipping=0
}
else if(mod==“Yes“){
shipping=1
}
else{
shipping=“NoData“
}

//product Visiblity default=no
var modVisible = inputData.Visible
var Visible
if(modVisible == „No“){
Visible=0
}
else if(mod==“Yes“){
Visible=1
}
else{
Visible=“NoDate“
}

//depth(thickness default=1)
var modDepth = inputData.Depth
var depth
if(modDepth == null){
depth=100000000000
}
else{
depth=modDepth
}

//availability (default=available)
var modavailability = inputData.availabilityData
var availability
var preOrderDate
var preorderOnly
if(modavailability == „No“){
availability=“disabled“
preOrderDate=“NoData“
preorderOnly=“NoData“
}
else if(modavailability==“Yes“){
availability=“available“
preOrderDate=“NoData“
preorderOnly=“NoData“
}
else if(modavailability == null || modavailability==““){
availability=“NoData“
preOrderDate=“NoData“
preorderOnly=“NoData“
}
else{
availability=“preorder“
preOrderDate=modavailability
preorderOnly=“True“
}



//customFields
var modCustomField = inputData.customfields
var customFieldData
if(modCustomField == null || modCustomField == „“){
customFieldData=1
}
else{
customFieldData=modCustomField
}

// SKU validate
var checkSKU=inputData.sku
var finalSKU

if(checkSKU==““ || checkSKU==null){
finalSKU =“NoData“
}else{
finalSKU=checkSKU
}

// Description validate
var checkDescription=inputData.description
var finalDescription

if(checkDescription==““ || checkDescription==null){
finalDescription=“NoData“
}else{
finalDescription=checkDescription
}

// bin_picking_number validate
var checkBin_picking_number=inputData.bin_picking_number
var finalBin_picking_number

if(checkBin_picking_number==““ || checkBin_picking_number==null){
finalBin_picking_number=“NoData“
}else{
finalBin_picking_number=checkBin_picking_number
}


// bin_picking_number validate
var checkBrand_name=inputData.brand_name
var finalBrand_name

if(checkBrand_name==““ || checkBrand_name==null){
finalBrand_name=“NoData“
}else{
finalBrand_name=checkBrand_name
}

//inventory_tracking  validate
var checkInventory_tracking=inputData.inventory_tracking
var finalInventory_tracking

if(checkInventory_tracking==““ || checkInventory_tracking==null){
finalInventory_tracking=“NoData“
}else{
finalInventory_tracking=checkInventory_tracking
}


//current_stock  validate
var checkCurrent_stock=inputData.current_stock
var finalCurrent_stock

if(checkCurrent_stock==““ || checkCurrent_stock==null){
finalCurrent_stock=100000000000
}else{
finalCurrent_stock=checkCurrent_stock
}

//low_stock validate
var checkLow_stock=inputData.low_stock
var finalLow_stock

if(checkLow_stock==““ || checkLow_stock==null){
finalLow_stock=100000000000
}else{
finalLow_stock=checkLow_stock
}


//width validate
var checkWidth=inputData.width
var finalWidth

if(checkWidth==““ || checkWidth==null){
finalWidth=100000000000
}else{
finalWidth=checkWidth
}


//heightvalidate
var checkHeight=inputData.height
var finalHeight

if(checkHeight==““ || checkHeight==null){
finalHeight=100000000000
}else{
finalHeight=checkHeight
}


//search_keywords validate
var checkSearch_keywords=inputData.search_keywords
var finalSearch_keywords

if(checkSearch_keywords==““ || checkSearch_keywords==null){
finalSearch_keywords =“NoData“
}else{
finalSearch_keywords =checkSearch_keywords
}


//meta_keywordsvalidate
var checkMeta_keywords=inputData.meta_keywords
var finalMeta_keywords

if(checkMeta_keywords==““ || checkMeta_keywords==null){
finalMeta_keywords=“NoData“
}else{
finalMeta_keywords=checkMeta_keywords
}


//meta_description svalidate
var checkMeta_description=inputData.meta_description
var finalMeta_description

if(checkMeta_description==““ || checkMeta_description==null){
finalMeta_description=“NoData“
}else{
finalMeta_description=checkMeta_description
}


//SortOrder validate
var checkSortOrder=inputData.SortOrder
var finalSortOrder

if(checkSortOrder==““ || checkSortOrder==null){
finalSortOrder=100000000000
}else{
finalSortOrder=checkSortOrder
}

//existingCat validate
var checkExistingCat=inputData.existingCat
var finalExistingCat

if(checkExistingCat==““ || checkExistingCat==null){
finalExistingCat=“NoData“
}else{
finalExistingCat=checkExistingCat
}


//unassignCat validate
var checkUnassignCat=inputData.unassignCat
var finalUnassignCat

if(checkUnassignCat==““ || checkUnassignCat==null){
finalUnassignCat=“NoData“
}else{
finalUnassignCat=checkUnassignCat
}


//assignCat validate
var checkAssignCat=inputData.assignCat
var finalAssignCat

if(checkAssignCat==““ || checkAssignCat==null){
finalAssignCat=“NoData“
}else{
finalAssignCat=checkAssignCat
}


//upc validate
var checkUpc=inputData.upc
var finalUpc

if(checkUpc==““ || checkUpc==null){
finalUpc=“NoData“
}else{
finalUpc=checkUpc
}

output = {finalName, finalType, finalWeight, finalPrice, shipping, Visible, depth, availability, preOrderDate, preorderOnly, taxClass, customFieldData, finalSKU, finalDescription, finalBin_picking_number, finalBrand_name, finalInventory_tracking, finalCurrent_stock, finalLow_stock, finalWidth, finalHeight, finalSearch_keywords, finalMeta_keywords, finalMeta_description, finalSortOrder, finalExistingCat, finalUnassignCat, finalAssignCat, finalUpc}

Nachdem wir den Validierungstest für diese Aktion erstellt haben, sind wir nun bereit für den letzten Schritt

Schritt 7: Der letzte Schritt ist die Auswahl eines weiteren Kodierungswerkzeugs, um die Anfragemethode zur Aktualisierung der vorhandenen Produkte mit Python auszuführen.

Codes für die Bearbeitung des Antrags auf Aktualisierung des Produkts:

import requests
import json

url = „https://api.bigcommerce.com/stores/storehash/v3/catalog/products“

Id=int(input_data[‚Id‘])
Name=str(input_data[‚Name‘])
sku=str(input_data[’sku‘])
description=str(input_data[‚description‘])
weight=float(input_data[‚weight‘])
depth=float(input_data[‚depth‘])
width=float(input_data[‚width‘])
height=float(input_data[‚height‘])
price=float(input_data[‚price‘])
bin_picking_number=str(input_data[‚bin_picking_number‘])
brand_name=str(input_data[‚brand_name‘])
inventory_level=int(input_data[‚current_stock‘])
inventory_warning_level=int(input_data[‚low_stock‘])
availability=str(input_data[‚availability‘])
preOrderDate=str(input_data[‚preorder_release_date‘])
#check pre order
preorderOnly=str(input_data[‚is_preorder_only‘])
if preorderOnly == „True“:
    resPreOrderOnly=True
else:
    resPreOrderOnly=None


search_keywords=str(input_data[’search_keywords‘])
meta_description=str(input_data[‚meta_description‘])
sortOrder = int(input_data[‚SortOrder‘])
upc=str(input_data[‚upc‘])
taxClass=int(input_data[‚taxClass‘])
#check shipping
shipping=str(input_data[’shipping‘])

if shipping==’0′:
    mod=False
elif shipping==’1′:
    mod=True
else:
    mod=None

#check  product is_visible
productVisible=str(input_data[‚productVisible‘])

if productVisible==’0′:
    productVisibleMod=False
elif productVisible==’1′:
    productVisibleMod=True
else:
    productVisibleMod=None

#check product Type
productType=str(input_data[‚Type‘])

if productType==“P“:
    type=“physical“
elif productType==“D“:
    type=“digital“
else:
    type=productType

#check inventory Data
inventoy=str(input_data[‚inventory_tracking‘])

if inventoy==“No“:
  inventoryData=“none“
elif inventoy==“Yes“:
  inventoryData=“product“
else:
  inventoryData=inventoy

# meta_keywords converting string to array[string]
meta_keywords = str(input_data[‚meta_keywords‘])
if meta_keywords != ‚NoData‘:
  metaWords = meta_keywords.split(‚,‘)
else:
  metaWords=[]


#———-category———–

def remove_matching_values(arr1, arr2, arr3):
  #set holds non duplicate values
  set1 = set(arr1)
  set2 = set(arr2)
  set3 = set(arr3)
  #removing matching data
  diff = set1.symmetric_difference(set2)
  list1 = list(diff)
  list2 = list(set3)
  #combining data
  combined = set(list1 + list2)
  return list(combined)


#fetching data from BigCom
fetchedData = str(input_data[‚Assignedcategories‘])
#fetching data from sheet to remove from category from product
Remove = str(input_data[‚unassign‘])
#fetching data from sheet to add category to product
addData = str(input_data[‚assign‘])

if fetchedData !=’NoData‘:
  fetchedDataArr = fetchedData.split(‚,‘)
  # arr1 = fetchedDataArr
  arr1 = []
  for x in fetchedDataArr:
    if x.isdigit():
    arr1.append(int(x))
else:
  arr1 = []
# Split the string into a list of elements

if Remove !=’NoData‘:
  removeDataArr = Remove.split(‚,‘)
  # arr1 = fetchedDataArr
  arr2 = []
  for x in removeDataArr:
    if x.isdigit():
      arr2.append(int(x))
else:
  arr2 = []

if addData !=’NoData‘:
  addDataArr = addData.split(‚,‘)
  # arr1 = fetchedDataArr
  arr3 = []
  for x in addDataArr:
    if x.isdigit():
    arr3.append(int(x))
else:
  arr3 = []

# passing parameter
result = remove_matching_values(arr1, arr2, arr3)



#———-customfields——-
rawCustomData = str(input_data[‚customFields‘])

if rawCustomData!=“1″:
  data_list = rawCustomData.split(‚,‘)
  rawResult = []
  for item in data_list:
  name, value = item.split(‚:‘)
  rawResult.append({’name‘: name, ‚value‘: value})
  customData=list(rawResult)
else:
  rawResult = []
  customData=list(rawResult)



#PAYLOAD
rawPayload ={
    „id“: Id,
    „name“: (f'{Name}‘),
    „type“: (f'{type}‘),
    „sku“: (f'{sku}‘),
    „description“: (f'{description}‘),
    „weight“: weight,
    „width“: width,
    „depth“: depth,
    „height“: height,
    „price“: price,
    „bin_picking_number“: (f'{bin_picking_number}‘),
    „brand_name“: (f'{brand_name}‘),
    „inventory_level“: inventory_level,
    „inventory_warning_level“: inventory_warning_level,
    „inventory_tracking“: (f'{inventoryData}‘),
    „is_free_shipping“: mod,
    „is_visible“: productVisibleMod,
    „availability“: (f'{availability}‘),
    „preorder_release_date“:(f'{preOrderDate}‘),
    „is_preorder_only“:resPreOrderOnly,
    „search_keywords“: (f'{search_keywords}‘),
    „meta_keywords“: metaWords,
    „meta_description“: (f'{meta_description}‘),
    „sort_order“: sortOrder,
    „tax_class_id“: taxClass,
    „categories“: result,
    „upc“:(f'{upc}‘),
    „custom_fields“:customData
  }
filtered_payload = {k: v for k, v in rawPayload.items() if v not in (None, „NoData“,[], 100000000000, -100000000000.0)}
payload=json.dumps([filtered_payload])
headers = {
  ‚X-Auth-Token‘: ‚Your Auth token‘, #Enter your Auth token here
  ‚Content-Type‘: ‚application/json‘,
  ‚Accept‘: ‚application/json‘
}

response1 = requests.request(„PUT“, url, headers=headers, data=payload)

Wichtige Dinge:

filtered_payload = {k: v for k, v in rawPayload.items() if v not in (None, „NoData“,[], 100000000000, „“, -100000000000.0)}

Durch die Verwendung dieser filtered_payload werden ungültige Daten herausgefiltert und ihre Felder aus der Nutzlast entfernt.

URL:- Geben Sie die URL Ihres Shops ein

X-Auth-Token:- Geben Sie Ihren X-Auth-Token ein

Hinweis: Bei der Eingabe der Daten sollten Sie diese Arten von Eingaben nicht verwenden

None, „NoData“,[], 100000000000, „“, -100000000000.0   

Diese Art von Eingaben führt zu einem Fehler.

Wenn Sie diese Schritte befolgen, können Sie neue Produkte erstellen und bestehende Produkte in BigCommerce aktualisieren.

Ausführlichere Anleitungen und Tutorials finden Sie auch auf der Zapier-Website und im Support-Center des Unternehmens.

Vergessen Sie nicht, dass wir ein Team von BigCommerce-Experten haben. Wenn Sie also jemals Unterstützung benötigen oder Fragen haben, kontaktieren Sie uns bitte unter manish@bay20.com oder rufen Sie uns unter +91-8800519180 an.