Zapier Code от Zapier не подсчитывает количества для комплексных продуктов в Shopify Заказы подпискиJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Zapier Code от Zapier не подсчитывает количества для комплексных продуктов в Shopify Заказы подписки

Сообщение Anonymous »

Сводка проблем < /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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Zapier «Код от Zapier» PATCH/POST 404 Ошибка для обновления FLOAT Time Off
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Подписки WooCommerce - автоматически выполнять заказы на продление и статус подписки
    Anonymous » » в форуме Php
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Shopify Ajax API - /cart/update.js не работает для обновления количества продуктов
    Anonymous » » в форуме Jquery
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • Zapier Code: Python http
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Получите данные обо всех клиентах в магазине Shopify, используя API Shopify и PHP Laravel.
    Anonymous » » в форуме Php
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Javascript»