Edits history of script submission #20561 for ' BatchChangeInventory (square)'

  • bun
    One script reply has been approved by the moderators
    Ap­pro­ved
    //native
    type Square = {
      token: string;
    };
    /**
     * BatchChangeInventory
     * Applies adjustments and counts to the provided item quantities.
    
    On success: returns the current calculated counts for all objects
    referenced in the request.
    On failure: returns a list of related errors.
     */
    export async function main(
      auth: Square,
      body: {
        idempotency_key: string;
        changes?: {
          type?: "PHYSICAL_COUNT" | "ADJUSTMENT" | "TRANSFER";
          physical_count?: {
            id?: string;
            reference_id?: string;
            catalog_object_id?: string;
            catalog_object_type?: string;
            state?:
              | "CUSTOM"
              | "IN_STOCK"
              | "SOLD"
              | "RETURNED_BY_CUSTOMER"
              | "RESERVED_FOR_SALE"
              | "SOLD_ONLINE"
              | "ORDERED_FROM_VENDOR"
              | "RECEIVED_FROM_VENDOR"
              | "IN_TRANSIT_TO"
              | "NONE"
              | "WASTE"
              | "UNLINKED_RETURN"
              | "COMPOSED"
              | "DECOMPOSED"
              | "SUPPORTED_BY_NEWER_VERSION"
              | "IN_TRANSIT";
            location_id?: string;
            quantity?: string;
            source?: {
              product?:
                | "SQUARE_POS"
                | "EXTERNAL_API"
                | "BILLING"
                | "APPOINTMENTS"
                | "INVOICES"
                | "ONLINE_STORE"
                | "PAYROLL"
                | "DASHBOARD"
                | "ITEM_LIBRARY_IMPORT"
                | "OTHER";
              application_id?: string;
              name?: string;
            };
            employee_id?: string;
            team_member_id?: string;
            occurred_at?: string;
            created_at?: string;
          };
          adjustment?: {
            id?: string;
            reference_id?: string;
            from_state?:
              | "CUSTOM"
              | "IN_STOCK"
              | "SOLD"
              | "RETURNED_BY_CUSTOMER"
              | "RESERVED_FOR_SALE"
              | "SOLD_ONLINE"
              | "ORDERED_FROM_VENDOR"
              | "RECEIVED_FROM_VENDOR"
              | "IN_TRANSIT_TO"
              | "NONE"
              | "WASTE"
              | "UNLINKED_RETURN"
              | "COMPOSED"
              | "DECOMPOSED"
              | "SUPPORTED_BY_NEWER_VERSION"
              | "IN_TRANSIT";
            to_state?:
              | "CUSTOM"
              | "IN_STOCK"
              | "SOLD"
              | "RETURNED_BY_CUSTOMER"
              | "RESERVED_FOR_SALE"
              | "SOLD_ONLINE"
              | "ORDERED_FROM_VENDOR"
              | "RECEIVED_FROM_VENDOR"
              | "IN_TRANSIT_TO"
              | "NONE"
              | "WASTE"
              | "UNLINKED_RETURN"
              | "COMPOSED"
              | "DECOMPOSED"
              | "SUPPORTED_BY_NEWER_VERSION"
              | "IN_TRANSIT";
            location_id?: string;
            catalog_object_id?: string;
            catalog_object_type?: string;
            quantity?: string;
            total_price_money?: {
              amount?: number;
              currency?:
                | "UNKNOWN_CURRENCY"
                | "AED"
                | "AFN"
                | "ALL"
                | "AMD"
                | "ANG"
                | "AOA"
                | "ARS"
                | "AUD"
                | "AWG"
                | "AZN"
                | "BAM"
                | "BBD"
                | "BDT"
                | "BGN"
                | "BHD"
                | "BIF"
                | "BMD"
                | "BND"
                | "BOB"
                | "BOV"
                | "BRL"
                | "BSD"
                | "BTN"
                | "BWP"
                | "BYR"
                | "BZD"
                | "CAD"
                | "CDF"
                | "CHE"
                | "CHF"
                | "CHW"
                | "CLF"
                | "CLP"
                | "CNY"
                | "COP"
                | "COU"
                | "CRC"
                | "CUC"
                | "CUP"
                | "CVE"
                | "CZK"
                | "DJF"
                | "DKK"
                | "DOP"
                | "DZD"
                | "EGP"
                | "ERN"
                | "ETB"
                | "EUR"
                | "FJD"
                | "FKP"
                | "GBP"
                | "GEL"
                | "GHS"
                | "GIP"
                | "GMD"
                | "GNF"
                | "GTQ"
                | "GYD"
                | "HKD"
                | "HNL"
                | "HRK"
                | "HTG"
                | "HUF"
                | "IDR"
                | "ILS"
                | "INR"
                | "IQD"
                | "IRR"
                | "ISK"
                | "JMD"
                | "JOD"
                | "JPY"
                | "KES"
                | "KGS"
                | "KHR"
                | "KMF"
                | "KPW"
                | "KRW"
                | "KWD"
                | "KYD"
                | "KZT"
                | "LAK"
                | "LBP"
                | "LKR"
                | "LRD"
                | "LSL"
                | "LTL"
                | "LVL"
                | "LYD"
                | "MAD"
                | "MDL"
                | "MGA"
                | "MKD"
                | "MMK"
                | "MNT"
                | "MOP"
                | "MRO"
                | "MUR"
                | "MVR"
                | "MWK"
                | "MXN"
                | "MXV"
                | "MYR"
                | "MZN"
                | "NAD"
                | "NGN"
                | "NIO"
                | "NOK"
                | "NPR"
                | "NZD"
                | "OMR"
                | "PAB"
                | "PEN"
                | "PGK"
                | "PHP"
                | "PKR"
                | "PLN"
                | "PYG"
                | "QAR"
                | "RON"
                | "RSD"
                | "RUB"
                | "RWF"
                | "SAR"
                | "SBD"
                | "SCR"
                | "SDG"
                | "SEK"
                | "SGD"
                | "SHP"
                | "SLL"
                | "SLE"
                | "SOS"
                | "SRD"
                | "SSP"
                | "STD"
                | "SVC"
                | "SYP"
                | "SZL"
                | "THB"
                | "TJS"
                | "TMT"
                | "TND"
                | "TOP"
                | "TRY"
                | "TTD"
                | "TWD"
                | "TZS"
                | "UAH"
                | "UGX"
                | "USD"
                | "USN"
                | "USS"
                | "UYI"
                | "UYU"
                | "UZS"
                | "VEF"
                | "VND"
                | "VUV"
                | "WST"
                | "XAF"
                | "XAG"
                | "XAU"
                | "XBA"
                | "XBB"
                | "XBC"
                | "XBD"
                | "XCD"
                | "XDR"
                | "XOF"
                | "XPD"
                | "XPF"
                | "XPT"
                | "XTS"
                | "XXX"
                | "YER"
                | "ZAR"
                | "ZMK"
                | "ZMW"
                | "BTC"
                | "XUS";
            };
            occurred_at?: string;
            created_at?: string;
            source?: {
              product?:
                | "SQUARE_POS"
                | "EXTERNAL_API"
                | "BILLING"
                | "APPOINTMENTS"
                | "INVOICES"
                | "ONLINE_STORE"
                | "PAYROLL"
                | "DASHBOARD"
                | "ITEM_LIBRARY_IMPORT"
                | "OTHER";
              application_id?: string;
              name?: string;
            };
            employee_id?: string;
            team_member_id?: string;
            transaction_id?: string;
            refund_id?: string;
            purchase_order_id?: string;
            goods_receipt_id?: string;
            adjustment_group?: {
              id?: string;
              root_adjustment_id?: string;
              from_state?:
                | "CUSTOM"
                | "IN_STOCK"
                | "SOLD"
                | "RETURNED_BY_CUSTOMER"
                | "RESERVED_FOR_SALE"
                | "SOLD_ONLINE"
                | "ORDERED_FROM_VENDOR"
                | "RECEIVED_FROM_VENDOR"
                | "IN_TRANSIT_TO"
                | "NONE"
                | "WASTE"
                | "UNLINKED_RETURN"
                | "COMPOSED"
                | "DECOMPOSED"
                | "SUPPORTED_BY_NEWER_VERSION"
                | "IN_TRANSIT";
              to_state?:
                | "CUSTOM"
                | "IN_STOCK"
                | "SOLD"
                | "RETURNED_BY_CUSTOMER"
                | "RESERVED_FOR_SALE"
                | "SOLD_ONLINE"
                | "ORDERED_FROM_VENDOR"
                | "RECEIVED_FROM_VENDOR"
                | "IN_TRANSIT_TO"
                | "NONE"
                | "WASTE"
                | "UNLINKED_RETURN"
                | "COMPOSED"
                | "DECOMPOSED"
                | "SUPPORTED_BY_NEWER_VERSION"
                | "IN_TRANSIT";
            };
          };
          transfer?: {
            id?: string;
            reference_id?: string;
            state?:
              | "CUSTOM"
              | "IN_STOCK"
              | "SOLD"
              | "RETURNED_BY_CUSTOMER"
              | "RESERVED_FOR_SALE"
              | "SOLD_ONLINE"
              | "ORDERED_FROM_VENDOR"
              | "RECEIVED_FROM_VENDOR"
              | "IN_TRANSIT_TO"
              | "NONE"
              | "WASTE"
              | "UNLINKED_RETURN"
              | "COMPOSED"
              | "DECOMPOSED"
              | "SUPPORTED_BY_NEWER_VERSION"
              | "IN_TRANSIT";
            from_location_id?: string;
            to_location_id?: string;
            catalog_object_id?: string;
            catalog_object_type?: string;
            quantity?: string;
            occurred_at?: string;
            created_at?: string;
            source?: {
              product?:
                | "SQUARE_POS"
                | "EXTERNAL_API"
                | "BILLING"
                | "APPOINTMENTS"
                | "INVOICES"
                | "ONLINE_STORE"
                | "PAYROLL"
                | "DASHBOARD"
                | "ITEM_LIBRARY_IMPORT"
                | "OTHER";
              application_id?: string;
              name?: string;
            };
            employee_id?: string;
            team_member_id?: string;
          };
          measurement_unit?: {
            measurement_unit?: {
              custom_unit?: { name: string; abbreviation: string };
              area_unit?:
                | "IMPERIAL_ACRE"
                | "IMPERIAL_SQUARE_INCH"
                | "IMPERIAL_SQUARE_FOOT"
                | "IMPERIAL_SQUARE_YARD"
                | "IMPERIAL_SQUARE_MILE"
                | "METRIC_SQUARE_CENTIMETER"
                | "METRIC_SQUARE_METER"
                | "METRIC_SQUARE_KILOMETER";
              length_unit?:
                | "IMPERIAL_INCH"
                | "IMPERIAL_FOOT"
                | "IMPERIAL_YARD"
                | "IMPERIAL_MILE"
                | "METRIC_MILLIMETER"
                | "METRIC_CENTIMETER"
                | "METRIC_METER"
                | "METRIC_KILOMETER";
              volume_unit?:
                | "GENERIC_FLUID_OUNCE"
                | "GENERIC_SHOT"
                | "GENERIC_CUP"
                | "GENERIC_PINT"
                | "GENERIC_QUART"
                | "GENERIC_GALLON"
                | "IMPERIAL_CUBIC_INCH"
                | "IMPERIAL_CUBIC_FOOT"
                | "IMPERIAL_CUBIC_YARD"
                | "METRIC_MILLILITER"
                | "METRIC_LITER";
              weight_unit?:
                | "IMPERIAL_WEIGHT_OUNCE"
                | "IMPERIAL_POUND"
                | "IMPERIAL_STONE"
                | "METRIC_MILLIGRAM"
                | "METRIC_GRAM"
                | "METRIC_KILOGRAM";
              generic_unit?: "UNIT";
              time_unit?:
                | "GENERIC_MILLISECOND"
                | "GENERIC_SECOND"
                | "GENERIC_MINUTE"
                | "GENERIC_HOUR"
                | "GENERIC_DAY";
              type?:
                | "TYPE_CUSTOM"
                | "TYPE_AREA"
                | "TYPE_LENGTH"
                | "TYPE_VOLUME"
                | "TYPE_WEIGHT"
                | "TYPE_GENERIC";
            };
            precision?: number;
          };
          measurement_unit_id?: string;
        }[];
        ignore_unchanged_counts?: false | true;
      },
    ) {
      const url = new URL(
        `https://connect.squareup.com/v2/inventory/changes/batch-create`,
      );
    
      const response = await fetch(url, {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
          Authorization: "Bearer " + auth.token,
        },
        body: JSON.stringify(body),
      });
      if (!response.ok) {
        const text = await response.text();
        throw new Error(`${response.status} ${text}`);
      }
      return await response.json();
    }
    

    Submitted by hugo697 235 days ago