API Skrypt dla Shopify
Wymagane jest stworzenie skryptu (metody js), który będzie aktualizować ilość produktów za pomocą API
- podłączenie node adminClientAPI (oficjalny pakiet)
- aktualizacja przez mutation GraphQL (lub inny Twój wariant)
- aktualizacja przez delta (+1, -2 i tak dalej)
W rzeczywistości funkcja istnieje, ale zwraca błąd, że z Input ma jakiś nieprawidłowy format, inne metody w projekcie działają poprawnie
Oto cały kod, który musi zacząć działać.
const client = createAdminApiClient({
storeDomain: process.env.SF_DOMAIN,
apiVersion: process.env.SF_API_VERSION,
accessToken: process.env.SF_ADMIN_ACCESS_TOKEN,
});
const mutateInventoryQuantity = async (inventoryItemId, delta) => {
const mutation = `
mutation inventoryAdjustQuantities($input: InventoryAdjustQuantitiesInput!) {
inventoryAdjustQuantities(input: $input) {
userErrors {
field
message
}
inventoryAdjustmentGroup {
createdAt
reason
referenceDocumentUri
changes {
name
delta
}
}
}
}
}
`;
const input = {
reason: "correction",
changes: [
{
delta,
inventoryItemId,
locationId: process.env.SF_CONST_LOCATION_ID
}
]
};
console.log('DEBUG: payload', JSON.stringify({ input }, null, 2));
try {
return await client.request(mutation, { input });
} catch (error) {
console.error('Nie udało się zmodyfikować stanu magazynowego:', error);
throw error;
}
}
mutateInventoryQuantity(id, delta)
ODPOWIEDŹ
Przekazano zmienną $input typu InventoryAdjustQuantitiesInput! z nieprawidłową wartością {
wartość: null,
problemy: [ { ścieżka: [], wyjaśnienie: 'Oczekiwana wartość nie może być null' } ]
}
Ось весь код який має запрацювати.
const client = createAdminApiClient({
storeDomain: process.env.SF_DOMAIN,
apiVersion: process.env.SF_API_VERSION,
accessToken: process.env.SF_ADMIN_ACCESS_TOKEN,
});
const mutateInventoryQuantity = async (inventoryItemId, delta) => {
const mutation = `
mutation inventoryAdjustQuantities($input: InventoryAdjustQuantitiesInput!) {
inventoryAdjustQuantities(input: $input) {
userErrors {
field
message
}
inventoryAdjustmentGroup {
createdAt
reason
referenceDocumentUri
changes {
name
delta
}
}
}
}
`;
const input = {
reason: "correction",
changes: [
{
delta,
inventoryItemId,
locationId: process.env.SF_CONST_LOCATION_ID
}
]
};
console.log('DEBUG: payload', JSON.stringify({ input }, null, 2));
try {
return await client.request(mutation, { input });
} catch (error) {
console.error('Failed to mutate inventory:', error);
throw error;
}
}
mutateInventoryQuantity(id, delta)
RESPONSE
Variable $input of type InventoryAdjustQuantitiesInput! was provided invalid value {
value: null,
problems: [ { path: [], explanation: 'Expected value to not be null' } ]
}
-
const mutateInventoryQuantity = async (inventoryItemId, delta) => {
const mutation = `
mutation inventoryAdjustQuantities($input: InventoryAdjustQuantitiesInput!) {
inventoryAdjustQuantities(input: $input) {
userErrors {
field
message
}
inventoryAdjustmentGroup {
createdAt
reason
referenceDocumentUri
changes {
name
delta
}
}
}
}
`;
const input = {
reason: "correction",
changes: [
{
delta,
inventoryItemId,
locationId: process.env.SF_CONST_LOCATION_ID
}
]
};
console.log('DEBUG: payload', JSON.stringify({ input }, null, 2));
try {
return await client.request(mutation, { input });
} catch (error) {
console.error('Failed to mutate inventory:', error);
throw error;
}
}
RESPONSE
Variable $input of type InventoryAdjustQuantitiesInput! was provided invalid value {
value: null,
problems: [ { path: [], explanation: 'Expected value to not be null' } ]
}
ось така відповідь з сервера -
Aktualne zlecenia dla freelancerów w kategorii Javascript & Typescript
Refaktoryzacja kodu JSWitam, mam 3 pliki, jeden ma 800 linii, jeden 300 i jeden około 600, trzeba zrobić refaktoryzację, ponieważ DOM Loading jest wywoływany kilka razy i jak rozumiem, to działa to trochę niepoprawnie, w idealnym przypadku podzielić ten z 800 na 2 pliki, oraz stworzyć dodatkowy plik,… Javascript & Typescript ∙ 20 minut temu ∙ 2 oferty |
Analiza plików tekstowych i wyświetlanie wyników w botcie Telegram
174 PLN
Wykonawca projektu przestał odpowiadać, a ja muszę wprowadzić poprawki i dopracować zadanie. Stack: Backend: Node.js, Typescript DB: Postgress, redis Queue: BullMQ Wszystko jest również opakowane w kontenery Docker dla łatwego uruchomienia na serwerze Serwer Hetzner Potrzebna… Javascript & Typescript, Parsowanie danych ∙ 20 minut temu ∙ 2 oferty |
Rozwój i utrzymanie platformy kasynowej
5442 PLN
Szukamy deweloperów z następującymi umiejętnościami, którzy pomogą nam utrzymać i rozwijać nowe funkcje naszej platformy kasyna online:Treść zadania: Integracja gier kasynowych i naprawa błędów: Naprawa istniejących błędów w grach kasynowych zgodnie z dokumentacją API kasyna,… Kryptowaluta i blockchain, Javascript & Typescript ∙ 1 dzień 9 godzin temu ∙ 10 ofert |
Potrzebne jest wykonanie kodowania strony na podstawie makiety FigmaCześć! Potrzebny doświadczony frontendowiec z znajomością html, css, php, skryptów i innych - aby dobrze złożyć stronę, wszystkie przyciski umieścić w kodzie, kalkulator itp. i kod powinien być krótki (czysty), strona powinna się szybko ładować. Wymagana jest responsywna wersja… Układ HTML i CSS, Javascript & Typescript ∙ 1 dzień 20 godzin temu ∙ 50 ofert |
Potrzebny programista do stworzenia strony typu landing page oraz napisania logiki backenduPotrzebny specjalista do opracowania responsywnego landing page w trzech głównych kolorach: zielonym, białym, czarnym. ✅ Główne wymagania dotyczące strony: Responsywny design dla urządzeń mobilnych, tabletów i komputerów stacjonarnych Technologie: HTML, CSS, JavaScript +… Javascript & Typescript, Programowanie stron internetowych ∙ 1 dzień 21 godzin temu ∙ 38 ofert |