Square Platform as a "Backend as a service"

I know square offers the Square Online platform that integrates with the Square features like products, inventory, payments and so on. I want to be able to create my own front end as I want to heavily customize the design and functionality.

  1. Can I create my own front end website and use Square as my backend to handle the products, inventories and payments?
  2. Is there an issue with doing an API call on each page refresh / to many API calls or should I cache every response?
  3. Can you point me to some resource that might help me implement this correctly?

You can totally build you’re custom site and use our APIs to manage you’re catalog, inventory, orders, payments. Square APIs provide a number of options for processing payments, selling online, and managing your business. Our APIs facilitate PCI-DSS compliant payment processing, and your Square account comes with free fraud protection and payment dispute management — so you can process payments with peace of mind.

Square APIs for Accepting Payments:

  • Payments and Refunds APIs: Direct Square to process payments and refunds securely across multiple channels — including in-person, online, and in-app.

Square APIs for managing all aspects of your business — including your customers, products, inventory, and team:

  • Orders API: Create an order and send it to a Square or custom built Point of Sale for seamless fulfillment.
  • Customers API: Manage customer profiles, including card-on-file payment information for future purchases.
  • Manage product catalogs with the Catalog API, and track product inventory with the Inventory API.
  • Create and manage team members with the Teams API and track work shifts with the Labor API.

You can also start building commerce apps which go beyond payments with Square Developer. :slightly_smiling_face:

Is there documentation on how to emulate an online order?
As in what to I run from the API and in what order.

  1. Select customer or create one if it does not exist
  2. Create order and assign customer

Not sure what other methods and in what order I need to run.

There’s not a fully documented walkthrough since each sellers flow can be unique to them but to emulate an online order using Square APIs, you’ll typically follow these steps:

  1. Create or Retrieve a Customer:

    • Use the CreateCustomer endpoint to create a new customer.
    • Alternatively, use the ListCustomers endpoint to retrieve existing customers and select one.
  2. Create an Order and Assign Customer:

    • Use the CreateOrder endpoint to create a new order.
    • Assign the customer to the order using the customer_id field.
  3. Add Line Items to the Order:

    • Use the CreateOrder endpoint again to add line items to the order with the Catalog API. Include details like name, quantity, base_price_money, etc.
  4. Specify Other Order Details:

    • Set other order details such as location_id, source, and any applicable discounts or taxes.
  5. Complete the Payment:

    • Use the CreatePayment endpoint to process the payment for the order.

Is there an alternative to implementing the steps mentioned and going with something like an Express Checkout where the checkout process is done on the Square domain and I do not need to implement the above?

I am thinking maybe just sending the product that are in the cart and square doing the rest?