Code

Discussion on Farmart - Single or Multivendor Laravel eCommerce System

Discussion on Farmart - Single or Multivendor Laravel eCommerce System

By
Cart 771 sales
Recently Updated

botble supports this item

Supported

This author's response time can be up to 2 business days.

606 comments found.

We are getting a 500 error page on the checkout page. Why was it coming, and what was the solution for it? Every time we are waiting for your reply and support. Is there any instant solution? Almost I have using your script for my clients, i dont have knowledge on it, but I am managing

https://drive.google.com/file/d/1MgHtnW5ftM7mZJifKDkzM-i6mABX8pPA/view?usp=sharing

Hi,

I can’t see your site error details. The error may from your hosting or another custom plugin. I can’t guess it.

Try to enable debug mode in .env to see error details, change:

APP_DEBUG=false

to:

APP_DEBUG=true

Or check error logs in storage/logs/laravel-y-m-d.log

Or please create a ticket on our support center https://botble.ticksy.com and give us access to your hosting, we will check it for you.

Hi boss, what day will you release the new update? Thank you :).

Hi,

We will release a new version next week. Please wait.

Hello! Can you tell me where to find the image on the server that I uploaded to the media?

Hi,

No, folder which you create in that folder won’t be synced to Admin -> Media.

You need to create that folder in Admin -> Media, then that folder will be created in public/storage.

If you create a folder in public/storage and want it to be shown in Admin -> Media, you need to add that record to table media_folders in the database.

So I figured out that when I created a folder in Media, it appeared on the server side. But when I move or copy images to the server, they don’t appear in Media! I need to move the images from public/storage to another folder…

Hi,

When you move files in that folder, it won’t be reflected to database, so it’s not updated in Admin -> Media.

You need to change folder_id in table media_files in your database.

Or you need to use Move feature in Admin -> Media.

https://prnt.sc/VjVTGQ4akA1s

Hello! We reinstalled the application on the same domain. Now it says that the license is active in parallel. How to fix it?

Thank you.

Can you tell me? After reinstallation, it does not allow you to create a country. Gives such an error

Illuminate\Database\QueryException vendor/laravel/framework/src/Illuminate/Database/Connection.php:838 SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘nationality’ in ‘field list’ (Connection: mysql, Host: 127.0.0.1, Port: 3306, Database: prostorebd, SQL: insert into `countries` (`status`, `name`, `code`, `nationality`, `order`, `is_default`, `image`, `updated_at`, `created_at`) values (published, Россия, RUS, , 0, 1, ?, 2026-02-14 19:25:31, 2026-02-14 19:25:31)) LARAVEL 12.51.0 PHP 8.2.29

Hi,

Your database is not updated, so it’s missing some colums.

Try to go to Platform administration -> System Updater and click on Update database button https://prnt.sc/FcIhkv5jG1Vx

Then it should work.

Hello! In “Media”, if you try to transfer images to another folder, nothing happens. Although there are notifications that it was successful! Please check.

2. Is it possible to do that when importing, if we do not use some specific keys, for example, “price, image, etc.” it does not change. Now, if you click to update existing products when importing, it will update all keys, even those that are not in the price list. It’s very inconvenient, you have to export goods by ticking all the keys, as a result you get a large volume. And it would be nice to make a filter for export, at least by categories. 3. There is no option in the import, how to change the “possibility of ordering with zero balance”, in the export it is…

Hi,

1. You mean move option? We just have option to move folder from a folder to another folder in Admin -> Media.

If you “transfer media” by moving files from /public/storage folder, it won’t be updated to the database, so you can’t see changes in Admin -> Media.

2. We will consider it in future versions when our dev team has more time.

3. I can’t find that option “possibility of ordering with zero balance” in our script. Can you give me more detail about this option? Some screenshots will helpful.

I don’t see it in orders export or products export page.

https://prnt.sc/T34WUEdEbHk5 https://prnt.sc/DChl2Db7VHrp

“Allow checkout when out of stock” – In the second screenshot, this parameter can be downloaded, but cannot be imported for mass change.

Another question, please add the ability to import balances and prices based on the barcode. It will be very useful!

It would also be great, when importing goods, to select or create a folder where product images will be saved. Because if there are a lot of goods, it is very difficult to work with their images…

And so the import of goods has become very good!!!

Hi,

We will check and implement those things in future versions.

Thanks for your feedback!

Hi Support,

I am facing a few concerns listed below:

1. How to add flag icons to country code mobile numbers? It seems missing in the registration. 2. Also getting an error while doing registration with a phone number, see the attached image. 3. How to configure the site as a single-vendor site and remove register as vendor? 4. Is there any way we can download the reports individually or combined?

Image: https://postimg.cc/H8tppVKX

Thank you.

Hi,

1 & 2. I guest that it has conflict with optimize options in Settings -> Optimize. Please try to disable it for now.

https://prnt.sc/m43ht4qy39TU

If it doesn’t work. Please go to Admin -> Platform administration -> System Updater and click on “Re-install the latest version” button, then check again.

3. You just need to disable plugin Marketplace in Plugins -> Installed plugins, then your site will become a single vendor site, no vendor registration option.

4. Sorry, I don’t understand this question. Which’s report you are mentioning?

Thank you for the response. 4. I was referring reports on the e-commerce section (sales, profit, expenses, etc.). Is there way we can extract those?

Hi,

We don’t have option to download these reports for now. It’s just used to view from the admin panel.

You can take screenshots to save them.

We will check if we can improve it in future versions.

Hello! Can you tell me how I can massively change product meta tags (title, meta description, etc.) or how it can be imported using the plugin (import/export)?

Very good

Tell me, do you plan to make it possible to import the product specification?

Hi,

We will do it in the next version.

How to add flag icons to country code mobile numbers? Is there a way to add image alt-tags? It’s very, very important for seo

Hi,

We have it already https://prnt.sc/K3v7bvFdMfyz

You can check it on https://farmart.botble.com/register

Image alt is added from code, we don’t have option to change them from the admin panel for images.

zipwebs to easily solve this create a blog for store owners, then say something like this. FOR INTERNATIONAL SHIPPING. Post in the “question and answer” area of your store front vendor control panel do ship internationally and state your shipping rates their.

Thank you

i might buy this but how secure is it?

Hi,

We are using Laravel framework, it’s a modern PHP framework and it handles most security issues.

zipwebs

zipwebs Purchased

First, I want to commend the Botble team for creating such a powerful platform. It’s a very powerful system with strong fundamentals and I’ve also appreciated the quality of support you guys have offered so far. That said, as with any mature platform, there are a few areas where deeper capability will materially improve real-world marketplace operations, shipping being one of the biggest.

Shipping in a multi-vendor, cross-border marketplace gets complicated extremely fast. Domestic corridors (e.g., US → CA) are straightforward because UPS/USPS/DHL/FedEx have established service coverage and often provide reliable rate APIs. But once you introduce less common corridors (e.g., Jamaica → India, Somalia → Japan, Yemen → United States etc. ), live rates and carrier API availability becomes inconsistent or nonexistent and the marketplace needs a deterministic rules-based system that vendors can configure without relying on live integrations.

The “Shipping Profiles” approach below solves this once and for all by giving vendors the ability to define explicit eligibility and rates per destination, using either weight tiers, price tiers, or both. This should be implemented as a first-class feature within the core Botble Marketplace shipping flow (not as an external add-on) and fully compatible with multi-vendor order splitting.

====================================================

1) Feature Scope and Target Outcome
====================================================

1.1 Objective
Implement “Shipping Profiles” that vendors can create and assign to products. Each profile must support:

  • Destination country restrictions (allowed list)
  • Ship-from origin country
  • Rule-based shipping rates by:
    • Weight OR
    • Price OR
    • Weight + Price (both conditions must match)
  • Processing time (X days)
  • Estimated Shipping time

Add a column in the product import section “Shipping Profile”

At checkout, shipping must be calculated per vendor shipment group and added to the order totals. If no valid profile/rule applies for the buyer’s destination and the order’s weight/price tier, checkout must be blocked for that particular product with a clear message saying “This product cannot be shipped to your selected destination”.

1.2 Why this solves the problem “once and for all”

  • Works globally even where live carrier APIs do not exist
  • Gives vendors full control and ensures deterministic outcomes
  • Avoids ambiguous “quote later” flows and eliminates last-minute shipping surprises
  • Scales from simple domestic sellers to complex international vendors
====================================================
2) Admin Controls (Core Settings)

Add Admin settings under Admin → Ecommerce → Settings → Shipping

2.1 Global settings

  • Enable/Disable Vendor Shipping Profiles (feature flag)
  • Max shipping profiles per vendor (integer: hard enforced)
  • Default behavior if shipping cannot be resolved for destination:
    • Block checkout and show error (required implementation) – “This product cannot be shipped to your selected destination”
  • Require vendors to configure shipping profiles before submitting physical products.

2.2 Admin oversight tools

  • Admin can view vendor shipping profiles and their rules for support purposes
  • Admin can disable a vendor’s profile (soft disable) to prevent it from being used in checkout
  • Audit: store timestamps and created_by/updated_by references
====================================================
3) Vendor Dashboard UX (Shipping Profiles Management)

Add Vendor Dashboard → Settings → “Shipping Profiles” tab.

Vendor must be able to:

  • Create / Edit / Delete shipping profiles
  • Activate / Deactivate profiles
  • Duplicate profile (copies destinations + rule table for fast setup)
  • View profile list showing: Name, Ships From, Mode, Active status, Updated date

Enforcement:

  • Vendor cannot create more than the admin-defined maximum
  • Vendor can only manage their own profiles
====================================================
4) Product-Level Association (Vendor Selects Profile Per Item)

4.1 Product create/edit
Add “Shipping Profile” selector:

  • Dropdown lists vendor’s ACTIVE profiles

4.2 Validation options (choose the cleanest Botble-aligned approach)

  • Preferred: If shipping profiles are enabled, require a profile assignment before product can be published.
  • Alternative: Allow publish but block checkout if shipping is not resolvable.
    Either approach is acceptable as long as it is consistent, predictable, and clearly communicated to the vendor and buyer.
====================================================
5) Shipping Profile Structure (Vendor-Configurable Rules)

Each Shipping Profile must contain:

5.1 Profile basics

  • Profile Name (required)
  • Ships From Country (required)
  • Processing time in days integer (required)
  • Calculation mode: weight | price | weight_price  (required)

5.2 Allowed destination countries

  • Vendor selects countries the profile can ship to (required list)
  • This must be enforced at:
    • Product page eligibility messaging (if buyer country known)
    • Cart/checkout hard validation (block if not allowed) (Option to move to wishlist / save for later

5.3 Rate rules (by destination country)
Rules are defined per destination country and are tiered by mode:

Mode A: Weight-based

  • Destination Country
  • Weight From / Weight To
  • Shipping Cost
  • Estimated Shipping time 

Mode B: Price-based

  • Destination Country
  • Price From / Price To
  • Shipping Cost
  • Estimated Shipping time 

Mode C: Weight + Price

  • Destination Country
  • Weight From / Weight To
  • Price From / Price To
  • Shipping Cost
  • Estimated Shipping time 

Important validation requirements:

  • No overlapping ranges for the same destination country within a profile for the selected mode
  • From/To must be valid (“From” should be less than “To” consistent inclusivity rule across system)
  • Numeric fields must be non-negative
  • Currency must follow the marketplace currency conventions
====================================================
6) Checkout Logic (Multi-Vendor + Multi-Profile)

This is the critical part for marketplace correctness.

6.1 Shipment grouping (required)
Group cart items by:

  • Vendor/Store AND
  • Shipping Profile ID
    This allows one vendor to have multiple shipment groups per order if different profiles are used on different products within the same order.

6.2 Rate resolution (deterministic)
For each shipment group:

  1. Confirm buyer destination country is allowed by the profile
  2. Compute:
    • Total weight = sum(product.weight x qty) for that group
    • Subtotal = sum(line_price x qty) for that group (follow Botble’s established discount/tax convention, but keep consistent)
  3. Find exactly one matching rule for that destination country and mode:
    • weight: match weight tier
    • price: match subtotal tier
    • weight_price: match both tiers in the same rule row

If no shipping rule found, label the product as : “This product cannot be shipped to your selected destination” with option to move to wishlist / save for later

If multiple rules exist show the price per rule 

6.3 Order persistence
Persist per vendor sub-order:

  • shipping_total
  • shipping_profile_id
  • ship_from_country
  • destination_country
  • processing_time_days
  • (Optional) matched_rule_id (useful for audit/debugging)
====================================================
7) Buyer-Facing UX Requirements

7.1 Product page

  • Display “Ships from: [Country]”
  • If buyer country is known (geo/session selector), show:
    • “Ships to your location” or “Does not ship to your location”

7.2 Cart / Checkout display
Show shipping as line items grouped clearly, for example:

  • Vendor A — Standard Intl (Ships from: JM) … $X
  • Vendor A — Heavy Items (Ships from: JM) … $Y
  • Vendor B — US Domestic (Ships from: US) … $Z

If blocked, show actionable message:

  • “Vendor A currently don’t ship these items to your destination” with an option to move to wishlist / save for later.
====================================================
8) High level overview of Advance Shipping Rules & Profiles

This enhancement is complete when:

  • Admin can enable the feature and set profile limits per vendor
  • Vendors can create shipping profiles with:
    • destination country restrictions
    • ship-from country
    • processing time days
    • calculation mode (weight / price / weight+price)
    • destination-specific tiered rules (non-overlapping)
  • Vendors can assign a shipping profile to each product
  • Checkout computes shipping per vendor/profile shipment group
  • Checkout blocks with clear messaging when shipping is not resolvable
  • Shipping totals and profile references persist on vendor sub-orders
  • Admin can view and disable vendor profiles with audit history
  • Add a column in the product import section “Shipping Profile”

Hi,

We will consider it.

Thanks for your suggestions.

zipwebs

zipwebs Purchased

Auto Translation of Products, Pages, Blogs

It would be lovely to have an asynchronous translation integration where we could automatically translate pages, products, blogs via Deepl, Open AI (With model selection), Amazon Translate, Google Translate.

So on the side where we have the flags, with the link to those translation, we could have a checkbox beside them, Example:
  1. Auto Translate to French
  2. Auto Translate to Spanish
  3. Auto Translate to English

With this feature, platform owners & vendors can simplify their translation with ease. Saving countless hours from copying and pastes.

Translation can be queued and processed via cronjob.

Hi,

We will consider it.

Thanks for your suggestions.

zipwebs

zipwebs Purchased

Vendor Text Editor on Frontend of the website.

It’s widely known that ecommerce marketplaces and websites that cater to content formatting, don’t want to have links or unwanted formatting within the product description and content.

As such please give admins the option to choose just a simple textbox as the editor for vendors.

With this all html are escaped and we can choose html elements that are not escaped via a check box, example:
img, a, p, div, span, strong, b, ul, ol, li, h2, h3, h4 etc. 


  1. If an image is added from an external source then it’s pulled into the systems’ designated storage.
  2. Option to ignore escaping specific domains along with the option to make each ignored domain follow or no follow
  3. Option to make these settings be applied to imported products as well

Hi,

We will consider it.

Thanks for your suggestions.

zipwebs

zipwebs Purchased

Webhooks are very important so that we can send data outside of the platform with ease. We can see that you’ve made some available to use, which is a tremendous help, very much appreciate it.

I would love if the webhook functionalities could be increased to. 1. When customer signup. 2. When customer request to become a vendor. 3. When a customer logs in. 4.When it customer’s birthday (cron job?)

I know these are plugin related webhooks but they are absolutely required.

Affiliate Module
1..When a customer request to become an affiliate. 2. When an affiliate gets a commission 3. When a commission is approved 4. When a commission is disapproved

( Name, Email, Approved Amount, Total Payable Balance, member levels etc.) Just make it so that we can get information outside of the application so that we can send meaningful communication.

Loyalty Points Module
Loyalty Points Module 1. When reward is earned 2. When reward is x days from expiry (cron job?) 3. When level changes

With these webhooks, we can better notify our customers on various actions and track progress from external system and motivating customers to spend more.

Newsletter Module
1. Add webhook when someone signup for the newsletter,

This way we can connect with other platforms that are not directly added via an API.

Hi,

We will consider it.

Thanks for your suggestions.

zipwebs

zipwebs Purchased

What I love about the Botble team is that you guys listen to your customers, and you strive to do the right thing. Thank you so much for making this awesome products. Thank you for solving the issue with the product images lingering on the server after the product is deleted.

I just have one small issue with the update to the import features of the eCommerce / Marketplace plugin.

When we’re importing products if the product already exist, and we have the Sku / ID column in the import file, it’s not updating the actual product, even when we select the box to update existing product, instead it just create a new product and completely ignore the existing product.

I think the default state is to, remove the checkbox, that say’s update existing products and make the default state in the system.

Update the platform to run the following logic when importing products

1. If ID exist and Sku does not exist, update product by ID.
2. If Sku exist and ID does not exist, update product by Sku
3. If ID exist and Sku Exist update product by ID (This way vendors can update the sku of existing products)

If the inventory file has neither an ID nor a sku the product is not created / updated but rather given a rejection notification / feedback.

At least if you don’t want to force this global change on users, you could give admins the capability to set these options for the vendors as a default.

-

Hi,

Our dev team will check and fix it. Thanks for your feedback!

Is their any option to order from website and pick-up from local store

Hi,

Try to enable debug mode in .env to see error details, change:

APP_DEBUG=false

to:

APP_DEBUG=true

Or check error logs in storage/logs/laravel-y-m-d.log

Or please create a ticket on our support center https://botble.ticksy.com and give us access to your hosting, our dev team will check it for you.

Is any documentation for all problems like internal server issues or plugins activation issues. We are create a ticket and waiting for your support. But our customer will never stay on our website. Any Instant solution for this issue

Sometimes we get 500 internal server issue, plug-in activation issue, cart issue or some times checkout issue, some plugin issue

When I am trying to create a ticket the messenger shows your team license was expired how we can contact you. This not an complaint just requesting to show your customer support

Some times you will do database updates on that time I lost my data.

One of the worst situation I am facing regarding this issues

Hi,

When it has an issue with a free plugin that you install in Plugins -> Add new plugins, you should delete that plugin in Plugins -> Installed plugins. Or delete it directly in platform/plugins on your hosting.

To prevent issues, you should backup your site data daily, your hosting provider should have this option.

And just install plugins that you really need. I see that you have installed too many plugins on your site, even though you don’t use them.

We are currently using your application on two websites hosted on the same server:

figurine.ro – running version 1.22.3

figurine.bg – running version 1.24.2.1

Both websites:

Are hosted on the same server

Have a very similar configuration

Have a similar number of products (around 96,000 items)

However, the performance difference between the two versions is significant.

The website running version 1.22.3 (figurine.ro) performs reasonably well and remains usable. In contrast, the website running version 1.24.2.1 (figurine.bg) is extremely slow, with noticeable delays across the admin area and frontend.

From one update to another, the platform seems to become progressively heavier and slower, even though:

Server resources are the same

Product count is similar

No major functional differences exist between the two setups

This strongly suggests that recent updates may have introduced performance regressions or inefficient processes.

We would appreciate:

Your feedback on known performance issues in versions 1.24.x

Recommendations for optimization or configuration changes

Clarification on whether this slowdown is expected behavior for newer versions

Any logs or profiling tools you recommend to identify the bottleneck

At this point, the performance of version 1.24.2.1 is severely impacting daily operations, so we need an urgent and clear direction on how to proceed.

Thank you in advance for your support.

Hi,

Actually, we just add database indexes and optimize queries to make it loads faster in recent versions.

I can’t guess what wrong with your site on your server.

Can you create a ticket on our support center https://botble.ticksy.com and give us access to your hosting to check it? We need to debug to find which part make your site slow.

Is their any option to sell custom t-shirts, custom visiting cards, mobile case printing etc.. like uploading images to print from the vendors

Hi,

We don’t have this feature in our script for now. This is a specific feature for some customers only, it should be a new plugin for this.

zipwebs

zipwebs Purchased

Hi good day, I’m having just a little issue. I’m hosting on hosting and I can’t change the web access directory to the “pubic/” it will always remain as “public_html/” is there a way I could automagically make when ever I run “php artisan optimize:clear ” the files are placed into the public_html/ directory automatically? Because other words I have to manually copy them every time.

So, is it working?

If it is working, you can follow this way. Don’t need to move source code to another folder as our above instruction.

zipwebs

zipwebs Purchased

It works like a charm, perhaps it could be built up on to have a variable in the .env file like PUBLIC_DIR=public_html or something similar or more stable.

Hi,

We will consider it.

Thanks for your feeedback.

Jahid50

Jahid50 Purchased

I can’t buy your tickets here. You’re telling me to buy a new ticket

Hi,

Your support is expired, if you want to create tickets on our support center https://botble.ticksy.com , you need to renew your support.

Jahid50

Jahid50 Purchased

I am unable to add any new products to my website. This error is showing. Please help me link https://qawmishop.com/admin/ecommerce/products/create

Hi,

Try to enable debug mode in .env to see error details, change:

APP_DEBUG=false to:

APP_DEBUG=true Or check error logs in storage/logs/laravel-y-m-d.log

Or please create a ticket on our support center https://botble.ticksy.com and give us access to your hosting, our dev team will check it for you.

by
by
by
by
by
by

Tell us what you think!

We'd like to ask you a few questions to help improve CodeCanyon.

Sure, take me to the survey