Сводка проблем < /strong>
Я использую Zapier для извлечения данных из заказов Shopify и отправки их в Google Sheets. Продукты в пакетах подписки показывают количество 0, когда я запускаю тесты, он считается нормально. Но когда я получаю живые заказы, все количество продуктов, кроме пакета, помечено 0. https://cravemealprepco.com
[*]Google Sheet[/b]: Template link of live order, followed by test
Zap Structure:
a) 1 - Shopify - New Paid Order
b) 2 - Filter by Zapier → Only Продолжается, если имя пакета строк включает в себя «обычный»
c) 3 - код от Zapier → Данные о приемах пищи (код ниже)
d) 4 - Google Sheets → Create Spreadsheet Row < /li>
< /ol>
/*
UPDATED VERSION - Handles both bundle items and individual items
*/
//////////////////// 1. master list - Updated with actual Shopify names ////////////////////
const meals = {
// Add the actual product names from Shopify
"Peanut Butter Power Balls": 0,
"Regular Protein - Meal Plan": 0,
"Overnight Oats": 0,
"Protein Donuts ( 2 pack )": 0,
// Keep your existing names in case they're used elsewhere
"Chocolate Strawberry Protein Pancakes": 0,
"Crave Breakfast Sandwich (Gluten Free)": 0,
"BBQ Chicken Mac N' Cheese": 0,
"French Onion Chicken - (Gluten Free)": 0,
"Chipotle Chicken (Gluten Free)": 0,
"Crave Fil A (Gluten Free)": 0,
"Turkey Bolognese": 0,
"Fiesta Turkey Bowl (Gluten Free)": 0,
"Sweet Chili Turkey Bowl (Gluten Free)": 0,
"Adobo Braised Beef Bowl - (Gluten Free)": 0,
"Beef Empanada": 0,
"Sesame Ginger Beef": 0,
"Big Mac Bowl (Gluten free)": 0,
"Asian Crunch Salad": 0,
"Strawberry Walnut Chicken Salad (GF)": 0,
"Mediterranean Chicken Hummus Wrap": 0,
"Grilled Chicken Chimichurri Bowl (GF) (DF) (SF)": 0,
"Grilled Chicken Caesar Wrap": 0,
"Beef & Broccoli (GF) (DF) (SF)": 0,
"Steak & Eggs (GF) (DF) (SF)": 0,
"Pulled Chicken (GF) (DF) (SF)": 0,
"Turkey Burger (GF) (DF) (SF)": 0,
"Grilled Chicken (GF) (DF) (SF)": 0,
"Chili Lime Turkey (GF) (DF) (SF)": 0
};
//////////////////// 2. normalise inputs ////////////////////
const names = Array.isArray(inputData.meal_name)
? inputData.meal_name
: (inputData.meal_name || "").split(/\s*,\s*/).filter(Boolean);
const qtys = Array.isArray(inputData.meal_qty)
? inputData.meal_qty
: (inputData.meal_qty || "").split(/\s*,\s*/).filter(Boolean);
//////////////////// 3. Handle bundle data from inputData object ////////////////////
// Check if there are bundle items directly in inputData
const bundleItems = [];
for (const key in inputData) {
// Look for meal names that end with "- Regular" or "- Double"
if (key.match(/\s*-\s*(regular|double)$/i) && typeof inputData[key] === 'string' && !isNaN(inputData[key])) {
const qty = parseInt(inputData[key], 10);
if (qty > 0) {
bundleItems.push({
name: key,
qty: qty
});
}
}
}
//////////////////// 4. build the counts ////////////////////
const unknown = [];
// Process regular meal_name/meal_qty arrays
for (let i = 0; i < names.length; i++) {
let title = (names || "").trim();
// strip "- Regular" or "- Double" (any case, any spaces)
title = title.replace(/\s*-\s*(regular|double)$/i, "").trim();
const qty = parseInt(qtys || "0", 10);
if (meals.hasOwnProperty(title)) {
meals[title] += qty;
} else {
unknown.push(title);
}
}
// Process bundle items found in inputData
for (const item of bundleItems) {
let title = item.name.trim();
// strip "- Regular" or "- Double" (any case, any spaces)
title = title.replace(/\s*-\s*(regular|double)$/i, "").trim();
if (meals.hasOwnProperty(title)) {
meals[title] += item.qty;
} else {
unknown.push(title);
}
}
//////////////////// 5. return the row ////////////////////
return {
name: inputData.billing_name || "",
phone: inputData.billing_phone || "",
email: inputData.email || "",
unknown_titles: unknown,
...meals
};
< /code>
Структура входных данных < /strong>
код от Zapeir Step Receies: < /p>
billing_name: Название адреса Биллинга < /li>
billing_phone: custermpty < /li>
mood_name: stice items title < /li>
< /ol>
ожидаемое против фактического поведения < /strong> < /p>
ожидаемое < /strong>: когда разместится новый порядок, количества продуктов должны быть правильно обновлены в сильную строку. Новый заказ размещается, количество продуктов показывает как «0», кроме элемента пакета. Когда я запускаю тот же заказ, что и тест, он работает хорошо. Я думал, что проблема может быть с кодом JavaScript.
Подробнее здесь: https://stackoverflow.com/questions/796 ... shopify-su
Zapier Code от Zapier не подсчитывает количества для комплексных продуктов в Shopify Заказы подписки ⇐ Javascript
Форум по Javascript
1752183862
Anonymous
[b] Сводка проблем < /strong>
Я использую Zapier для извлечения данных из заказов Shopify и отправки их в Google Sheets. Продукты в пакетах подписки показывают количество 0, когда я запускаю тесты, он считается нормально. Но когда я получаю живые заказы, все количество продуктов, кроме пакета, помечено 0. https://cravemealprepco.com
[*]Google Sheet[/b]: Template link of live order, followed by test
[b]Zap Structure:[/b]
a) 1 - Shopify - New Paid Order
b) 2 - Filter by Zapier → Only Продолжается, если имя пакета строк включает в себя «обычный»
c) 3 - код от Zapier → Данные о приемах пищи (код ниже)
d) 4 - Google Sheets → Create Spreadsheet Row < /li>
< /ol>
/*
UPDATED VERSION - Handles both bundle items and individual items
*/
//////////////////// 1. master list - Updated with actual Shopify names ////////////////////
const meals = {
// Add the actual product names from Shopify
"Peanut Butter Power Balls": 0,
"Regular Protein - Meal Plan": 0,
"Overnight Oats": 0,
"Protein Donuts ( 2 pack )": 0,
// Keep your existing names in case they're used elsewhere
"Chocolate Strawberry Protein Pancakes": 0,
"Crave Breakfast Sandwich (Gluten Free)": 0,
"BBQ Chicken Mac N' Cheese": 0,
"French Onion Chicken - (Gluten Free)": 0,
"Chipotle Chicken (Gluten Free)": 0,
"Crave Fil A (Gluten Free)": 0,
"Turkey Bolognese": 0,
"Fiesta Turkey Bowl (Gluten Free)": 0,
"Sweet Chili Turkey Bowl (Gluten Free)": 0,
"Adobo Braised Beef Bowl - (Gluten Free)": 0,
"Beef Empanada": 0,
"Sesame Ginger Beef": 0,
"Big Mac Bowl (Gluten free)": 0,
"Asian Crunch Salad": 0,
"Strawberry Walnut Chicken Salad (GF)": 0,
"Mediterranean Chicken Hummus Wrap": 0,
"Grilled Chicken Chimichurri Bowl (GF) (DF) (SF)": 0,
"Grilled Chicken Caesar Wrap": 0,
"Beef & Broccoli (GF) (DF) (SF)": 0,
"Steak & Eggs (GF) (DF) (SF)": 0,
"Pulled Chicken (GF) (DF) (SF)": 0,
"Turkey Burger (GF) (DF) (SF)": 0,
"Grilled Chicken (GF) (DF) (SF)": 0,
"Chili Lime Turkey (GF) (DF) (SF)": 0
};
//////////////////// 2. normalise inputs ////////////////////
const names = Array.isArray(inputData.meal_name)
? inputData.meal_name
: (inputData.meal_name || "").split(/\s*,\s*/).filter(Boolean);
const qtys = Array.isArray(inputData.meal_qty)
? inputData.meal_qty
: (inputData.meal_qty || "").split(/\s*,\s*/).filter(Boolean);
//////////////////// 3. Handle bundle data from inputData object ////////////////////
// Check if there are bundle items directly in inputData
const bundleItems = [];
for (const key in inputData) {
// Look for meal names that end with "- Regular" or "- Double"
if (key.match(/\s*-\s*(regular|double)$/i) && typeof inputData[key] === 'string' && !isNaN(inputData[key])) {
const qty = parseInt(inputData[key], 10);
if (qty > 0) {
bundleItems.push({
name: key,
qty: qty
});
}
}
}
//////////////////// 4. build the counts ////////////////////
const unknown = [];
// Process regular meal_name/meal_qty arrays
for (let i = 0; i < names.length; i++) {
let title = (names[i] || "").trim();
// strip "- Regular" or "- Double" (any case, any spaces)
title = title.replace(/\s*-\s*(regular|double)$/i, "").trim();
const qty = parseInt(qtys[i] || "0", 10);
if (meals.hasOwnProperty(title)) {
meals[title] += qty;
} else {
unknown.push(title);
}
}
// Process bundle items found in inputData
for (const item of bundleItems) {
let title = item.name.trim();
// strip "- Regular" or "- Double" (any case, any spaces)
title = title.replace(/\s*-\s*(regular|double)$/i, "").trim();
if (meals.hasOwnProperty(title)) {
meals[title] += item.qty;
} else {
unknown.push(title);
}
}
//////////////////// 5. return the row ////////////////////
return {
name: inputData.billing_name || "",
phone: inputData.billing_phone || "",
email: inputData.email || "",
unknown_titles: unknown,
...meals
};
< /code>
Структура входных данных < /strong>
код от Zapeir Step Receies: < /p>
billing_name: Название адреса Биллинга < /li>
billing_phone: custermpty < /li>
mood_name: stice items title < /li>
< /ol>
ожидаемое против фактического поведения < /strong> < /p>
ожидаемое < /strong>: когда разместится новый порядок, количества продуктов должны быть правильно обновлены в сильную строку. Новый заказ размещается, количество продуктов показывает как «0», кроме элемента пакета. Когда я запускаю тот же заказ, что и тест, он работает хорошо. Я думал, что проблема может быть с кодом JavaScript.
Подробнее здесь: [url]https://stackoverflow.com/questions/79697632/zapier-code-by-zapier-not-counting-quantities-for-bundled-products-in-shopify-su[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия