Bagisto suitability and importing products from different sources (JSON API, XML, CSV)
-
Hi!
We're considering using Bagisto for our central product inventory management system.
Yet we have some questions and hopefully you can clarify if Bagisto is a good fit for our need or should we look for alternatives (Aimeos etc).
Also does it already support the features I'll describe below or it needs additional development.What we intend to build in the V1:
- We want to have a central place for internal use which contains products from different external vendor warehouses.
Goal is that we import and update products via different APIs (JSON, CSV files, XML files). And at the end, instead of logging into different warehouses to see if they have the product, we can just search in Bagisto since it aggregates products from multiple warehouse. - We want to have an API output where we can connect an existing WooCommerce store to Bagisto.
Data direction would be Bagisto -> WooCommerce.
WooCommerce would fetch the product updates (product data, price, inventory) from Bagisto.
Maybe in the future we will replace WooCommerce with decoupled frontend store but that's in the future. - We want to have a logged in area for limited number of people, who can see Bagisto products we import in the step 1.
This can be a normal store view that's intended for public too - it does not matter. They just need to be able to see products, add them to the cart and choose "Pay by invoice". No real payments are needed in the V1.
NB! It's important that when person X logs in, we can show them the prices with specific margin. Different accounts would have different margins.
Questions regarding those main V1 needs:
- Is this correct that in order to build those different importers, we would need to create our own packages that use the Bagisto GraphQL Admin API to create products? Or is there a way to avoid using the GraphQL for creating products? Usually with Laravel we use the Eloquent and DB queries to create product and related entities. We know that before importing, we need to also mutate / process / normalize the data since different APIs give it out in so many different ways. Price and inventory updating we would run as a scheduled job each 30 minutes.
- For having the API output for other systems, there we should use either Bagisto Web API or Bagisto GraphQL Shop API?
- To have the "private" area for limited amount of people, I guess we can just even use HTTP Basic Auth? Or does Bagisto support out of the box way to have a strorefront which is accessible only to logged in users?
And for prices per customer - I guess correct would be to use Groups with Catalog rules? - What is the best way to get Faceted search / attribute filters in the admin Products view? Goal is to make the admin product search as powerful as in the public store.
- When our clients place an order in Bagisto - which is the correct way to hook our custom logic that initiates an API request after the order is done? Are there some specific events/hooks? Goal is that if the person places an order which has products from different warehouses, we create an API requests to forward these orders to the warehouses where the products were imported from.
- What is the correct way to indicate / connect alternative products? When we import products, we have products that are the same in different external warehouses - only difference is the price, inventory, delivery time, delivery fees and VAT. Ideally we would like to see in the admin that product X is available from warehouses / X & Y with prices XX XX.
A lot of questions here. Thanks for taking the time to give some insights!
Best,
Raido - We want to have a central place for internal use which contains products from different external vendor warehouses.
-
Hi @raidoa ,
Greetings!!!
Thank you for letting us know your requirements. Would it be possible if you can simply create a ticket for this query so we can continue our communication there? Here you can create a ticket: https://bagisto.uvdesk.com/en/customer/create-ticket/
Further, we may need to connect on call via Skype or Google Meet to discuss the requirements. Looking forward to your ticket.