613 comments found.
I have used different images for different weights of the same products, but when I click on the different weights, it does not show. But if I reload it, it appears. I am sending you the link. Please check it and fix it. https://martfly.com.bd/products/lifebuoy-lemon-fresh-bath-soap?weight=100gm
Hi,
Thanks for the report – I reproduced it on your link and confirmed the cause. On the product page the variation switch updates price, SKU and stock correctly, but the image gallery is not refreshed because the product wrapper is missing the bb-product-detail class that the gallery-update script looks for. A full reload works because the image is then rendered server-side. This is fixed in the next theme update.
To fix your current site now, edit two files:
1) platform/themes/farmart/views/ecommerce/product.blade.php (line 7), change:
<div class="product-detail-container">
to:
<div class="product-detail-container bb-product-detail">
2) platform/themes/farmart/partials/ecommerce/quick-view.blade.php (line 1), change:
<div class="container product-detail-container">
to:
<div class="container product-detail-container bb-product-detail">
Then clear the cache in Admin -> Platform Administration -> Cache Management -> Clear all caches.
After that the gallery image will switch instantly when you click a different weight, with no reload needed.
“Hi Developer, I need detailed technical guidance on customizing the Shofy theme. Please provide the exact File Locations (Paths) for the following requirements: 1. Shipping Method Filtering File: On the checkout page, I want to filter shipping methods dynamically based on the selected State (e.g., if State is ‘Dhaka’, show only Dhaka shipping; if ‘Barisal’, show Barisal; otherwise show ‘Outside Dhaka’). Since frontend JS gets overridden by Ajax updates, which backend Controller or Service file processes and filters these shipping options, and where is it located? 2. Checkout Fields Customization File: I want to rename and customize the input fields on the checkout page (e.g., changing labels/placeholders for State, City, Address fields). Where are the core form fields defined or stored? Is there a specific form builder file or translation file I should edit? 3. Core Website Architecture Map: To easily customize the website in the future according to my business needs, please share the exact file paths for: Main Frontend Blade Files: (Where to edit the Layout, Cart, Checkout, and Product Pages?) Main Asset Files: (Where to add custom CSS styles and global JS scripts?) Main E-commerce Logic Files: (Where are the core controllers/services for managing Orders, Shipping, and Checkout?) Please guide me with the correct file directory structure so I can safely customize the theme without breaking core functions. Thank you!”
Hi,
I see that you are using our script without purchasing it.
Please purchase our script first, then create a ticket on our support center https://botble.ticksy.com, our dev team will support you.
I would like to modify my invoice slightly. How do I do this?
Hi,
Farmart has two places to customize the invoice:
1. Branding / company info – go to Admin -> Ecommerce -> Settings -> Invoice settings. From here you can change the company name, address, logo, tax ID, font, language support, invoice code prefix, date format, and PDF library (DomPDF or mPDF).
2. Layout / HTML / CSS – go to Admin -> Ecommerce -> Settings -> Invoice templates. This opens a full editor for the invoice HTML and a custom CSS box. You can preview live and reset to default any time.
If you only need small visual tweaks (colors, spacing, font size), use the Custom CSS field on the Invoice templates page – safe and update-proof. For structural changes (move blocks, add/remove fields, change column order), edit the HTML in the same editor.
If you want to share a screenshot or describe exactly what you want to change, I can point you to the right block.
When will the product ‘Amerce’ be available on CodeCanyon?
Hi,
We’re distributing Amerce directly through our own marketplace instead of CodeCanyon:
https://marketplace.botble.com/amerce
What’s included:
- Intro price $39 (launch pricing)
- Lifetime updates and support
- 20 ready homepage presets – fashion, electronics, furniture, jewelry, organic, headphones, and more
- One-click demo data import per preset
Live demo: https://amerce.botble.com
Buying direct also lets us push updates and license activations faster than the Envato pipeline.
I highly recommend listing Amerce on CodeCanyon. It will increase your product’s visibility and boost sales. I initially tried to purchase it through Botble, but found their checkout process quite complex
Hi,
Thanks for the feedback – we’ll review the checkout flow.
For Amerce, we’re sticking with direct distribution through marketplace.botble.com so we can push updates and license activations faster than the CodeCanyon pipeline allows.
If checkout is blocking you, send us a message at contact@botble.com and we’ll process your order manually with a direct payment link (PayPal, Wise, or bank transfer). The $39 intro price still applies – same license, lifetime updates, and support.
Sir, the Product attributes are not showing. Please solve the problem.
Hi miryusuf22, thanks for the feedback. “Product attributes are not showing” could mean several different things (attribute sets not appearing in admin, attributes not displaying on the product page, variations not loading, etc.), and we can’t reproduce a generic issue without specifics.
Please open a ticket at https://botble.ticksy.com with:
- A screenshot of where you expect the attributes to show
- Your Farmart version
- Admin/staging URL + temporary login (or steps to reproduce)
We respond to every ticket within 24 hours and will get this sorted for you. Once resolved, we’d appreciate you updating your rating to reflect the actual support experience.
The product attribute does not show when clicking from one to another. It only takes time to load.
https://martfly.com.bd/products/coca-cola-original-tasteHi,
We have just released it again to fix this issue.
Please go to Admin -> Platform administration -> System Updater and click on “Re-install the latest version”, then it should be fixed.
Thanks for your feedback!
Please remove your bad rating on this, we will support you faster if you contact us directly, not via rating system.
Hello, i would like to ask, is there any chance, you guys have plugin or something for 2 factor Authenticators for customer , vendor and admin accounts ? Or is there any chance, you are planining to make a plugin like that ? Where , when you trying to log in, you will receive the email with the code ? If yes, when ?
.
Thank you for reply, and have a nice day
.
Hi,
Yes, there is a 2FA plugin available on our marketplace by a community author: https://marketplace.botble.com/products/archielite/2fa
It supports two-factor authentication for customer, vendor, and admin accounts. You can install it from Admin → Plugins → Add new plugin.
Please note this is a community-authored plugin, not an official Botble plugin. If you encounter any issues or need additional features, please contact the plugin author directly.
Hello, yes i saw that one. But this one is not good, there is a lot of steps for customer, and they do not gonna do all of that. Thats why i am asking for email one, where e-shop system will send you 6 random numbers into your e-mail. And customer do not have to download apps for it
. Because when you have e-wallet plugin and people has money there it is neccessery.
Are you planning to make something like that? It is simple thing, and a lot of code is already there, like system sending e-mails and stuff. Gonna take you few hours
and it will be done.
Please let me know if you gonna do that, thank you very much
.
Hi,
Thank you for the feedback. We understand the app-based 2FA adds extra steps that may not be ideal for all customers.
Email-based OTP (sending a verification code to the customer’s email on login) is not currently available, but we’ve noted it as a feature request. It’s a valid suggestion, especially for stores using the E-Wallet plugin where account security is important.
We’ll consider adding this in a future update.
Yes ! Thank you very much
I will be waiting for that one for sure.
Hi, I have one more request for a new functionality that I need, and it will help everyone overall. When adding products, I noticed that when there are multiple vendors on the marketplace, and they sell the same products, e.g. iPhone 17 Pro Black, the entire product feed is flooded with one and the same product. It’s a big problem when there are suddenly 30 vendors, when you imagine that those phones also have different color variations and storage sizes. I have a request for you, whether it would be possible to create some kind of internal code system, like Amazon’s (ASIN). When each product is first added, a unique code is generated, to which the entire photo gallery, specifications, product feed, product category and all the essential information about the given product will be assigned, such as the sku code, etc. And when new vendors come with the same products, Second vendor will be paired with them via e.g. SKU code, they will not add anything to the database, the entire photo gallery will be shared with them, including product information, etc. Practically, only one product will be displayed, with the lowest price, and if there are people with the same price, the one who has it there the longest will be displayed, so that they can sell the product first. This system will prevent 30 different sellers from adding 30 different images to a given product, 30 different descriptions, etc., we will optimize storage. Plus, it would be very good if every image and every banner, practically everything that goes through import and is in jpg, jpeg and similar formats were automatically converted to webp format. This will massively optimize storage capacity and increase page loading. I will also copy the official request for the programmer here. I would be very happy if you put this system there, because without it, the marketplace is literally non-functional
. Thanks! Let me know if you’ll work on it
.
Subject / Title: Implementation of a Unique Product Identifier System (similar to Amazon ASIN)
- Requirement Description I would like to implement a custom 10-character alphanumeric unique product identifier in our e-commerce application (or internal system), which will function similarly to Amazon ASIN (Amazon Standard Identification Number).
We will call this identifier PRODID (or ITEMID, PRODUCT_CODE – feel free to suggest a better name).
- Main Requirements for the Format - Exactly 10 characters (alphanumeric). - Allowed characters: uppercase letters A–Z and digits 0–9 (base-36 system). No lowercase letters, no special characters (e.g. -, _, /). - The code should preferably start with a fixed prefix such as “P0” or “B0” to make it easily recognizable (similar to Amazon ASIN), but this is not strictly mandatory. - Example formats: P0ABC12345, B08K2XYZ9Q, P0123456789
- Required Functionality 1. Automatic Generation of the Identifier – When creating a new product (or product variant), the system should automatically generate a new unique code if the user does not provide one manually. – The code must be guaranteed to be unique across the entire database (even with tens or hundreds of thousands of products).
2. Uniqueness Validation – Before saving, check that the code does not already exist in the database. – If it does → generate a new one.
3. Manual Entry Option – Administrators or product managers can manually enter a custom code (e.g. when importing products from Amazon or for special items). – The system must still validate that the code is unique and in the correct format.
4. Parent-Child Relationship Support (Recommended) – For products with variations (color, size, etc.): – Parent PRODID – the main product (e.g. a t-shirt as a whole). – Child PRODID – a specific variant (e.g. red t-shirt size M). – Child codes can either inherit part of the parent code + suffix, or be completely independent (we can decide together).
5. Additional Properties – The code is immutable once created. – Used in product URLs (e.g. /product/P0ABC12345). – Displayed on the product detail page, in the admin panel, orders, API responses, etc. – Fast search by this code (indexed lookup).
- Technical Recommendations (you can propose a better solution) - Code Generation: – Use a secure random generator (e.g. crypto.randomBytes in Node.js, secrets module in Python, or UUID converted to base36). – Alternative: sequential counter + base36 encoding. – 10 characters in base-36 gives approximately 3.6 × 10¹⁵ possible combinations – more than enough.
- Database Storage: – Column: product_code VARCHAR UNIQUE NOT NULL (or equivalent in your database). – Add a proper index on this column.
- Duplicate Prevention: – Use database transaction + insert attempt with retry loop (max 5–10 attempts).
- Libraries (depending on our stack): – Node.js: nanoid, shortid, uuid + base36 conversion, or custom function. – Python: secrets, shortuuid, or custom base36 generator. – Laravel / PHP: custom service or short unique ID package.
- Optional / Bonus Features - Audit log – who generated the code and when. - Ability to block/deactivate a code (in case of accidental use). - Export / import of products including this code. - API endpoint to generate a new code for external systems.
Hi,
On the WebP conversion: this is already built in. Go to Admin > Settings > Media and enable Convert JPG, JPEG, PNG image to WebP. After that, any JPG/JPEG/PNG uploaded (product images, banners, gallery, import) will be stored as WebP automatically.
On the shared product catalog (ASIN-style): this is not a small change. Our current marketplace uses a listing-based model where each vendor owns their own product record, which is the standard pattern in most multivendor platforms. A shared-catalog model requires: a global catalog layer separate from vendor listings, a matching UI so a second vendor can find and attach to an existing catalog entry instead of creating a new one, price aggregation logic to pick the displayed offer, tie-breaker rules, and a moderation workflow so the first vendor’s gallery/specs can be trusted. It is a significant architectural change rather than a quick addition.
We have noted this as a feature request for the dev team to evaluate for a future version. If you need it now, it will require custom plugin development.
Hello, thank you for reply. Yes i checked the conversion funkcion and its good
i didnt know about it
. So thank you 
(ASIN style) -
Yes, i need it, but that is why i asking
, because i do not know if you gonna do that soon, or if i should tell to my programmer, because i do not want to waste money. Because, if you gonna program this funkcion, and you will sell it as a plugin for 30 dollars, there is no reason to tell to my programmer to program it for me , it will be way more expensive. So i do not know, if i should wait and you will do it soon or i should tell to my programer ? What do you think?
Because i understand to your arguments, you builded it as listing based model, but when it is like this, it is brutal
, product listings are very chaotic, and you open 1 category and its flooded with 1 produkt
, it cant be like this
. For not trained eye (customer) when he sees the category flooded with one produkt, he may think, something is wrong with the e-shop, something is bugged
, and people do not have time to scroll over everything :/
I use it as a marketplace for factory new goods not used ones where sellers are local bussineses and not random people whitch are trying to sell something used. I understand it can be used both ways but, for my business it is not suitable for now, there must be this asin funkcionality.
For me, the most important thing now is the ASIN functionality, the e-wallet plugin, and the kyc plugin.
The kyc plugin also needs to get a few more updates, because for example in Europe, when your company has an e-wallet system, the e-shop must ask the customer for an ID card and a bank statement above a certain amount. This is mandatory because the wallet is such that money can be deposited and withdrawn from it. It must be set as mandatory for both the customer and the vendor after a certain amount is exceeded + it would be best if the wallet were somehow set to control the bank account number, so that the money can only be paid out to the same account from which it was deposited. If it is like this, it will be completely legal in Europe, now it is not and if we use it, we face huge fines. Because they are trying to prevent money laundering. So bank statement is mandatory for both customer and vendor over a certain amount.
Thats everything i have on my hearth right now
, so if you can somehow speedrun this i would be really happy and thankfull sir
.
Thank you one more time , and let me know what you think about it
.
Hi,
Glad the WebP conversion helped.
On the ASIN-style shared catalog: this is a significant architectural change (global catalog layer, vendor attach/match UI, price aggregation, moderation workflow), not a plugin-sized addition. It is not on our near-term roadmap. If you need it now, please go ahead with your programmer — we will not deliver this soon, and waiting would not be worth it for your timeline.
On KYC + e-wallet compliance: we do have an official KYC plugin on our marketplace that may cover part of what you need: https://marketplace.botble.com/products/botble/kyc. It supports dual-scope verification (customer + vendor), document uploads (ID, business certificate), checkout/listing gates, auto-lock after repeated rejections, and HMAC-signed webhooks for external compliance systems.
However, the EU-specific requirements you mentioned are not built in: threshold-based mandatory verification tied to e-wallet balance, bank statement as a required document type, and withdrawal-only-to-verified-bank-account. These would need to be added via custom development or requested as an enhancement. I have noted them as feature requests for the plugin team to evaluate.
For the e-wallet itself, this is on our feature request list but also not in the near-term roadmap.
Short version: for ASIN, go with your programmer. For KYC, start with the official plugin above and extend it for the EU-specific parts.
Hello, yes i understand but, kyc and e-wallet is not a big problem i do not care about it at all. Few hours and my programmer will fix that. What making me really worried is that asin style funkcionality, i understand it is not in your main future list, but just for my information, how much money would you charge me if I wanted to create that style directly with you? I want fixed price only, for complete funkcionality, not hourly rate.
Maybe you give me better price, and we can make a deal. I would really love to make this, your priority
, or if you want to make it as a plugin or something, and start to selling in for all, how much money gonna convince you to make it priority for you (Of course, it can’t be that much, as it’s custom-made just for me, I don’t want to pay for something that others will buy for a few dozen euros. But if you have a price that would make this feature a priority for you, feel free to say so
)
Because this script is completly builded on your custom cms with your custome theme, and you have better better overview of how things work and where things are, you’ll probably be able to do it faster and cheaper than my programmer, but maybe I’m wrong.
Btw for my info, are you going to add that e-mail adress 6 nummer OTP in next update please ?
.
Thank you and have a nice day
.
Hi,
On the ASIN-style shared catalog: we do offer custom development at $30/hour via contact@botble.com. For a fixed price, please send a detailed spec of the exact scope (catalog layer, vendor attach/match UI, price aggregation rules, moderation workflow, admin tools) and we can come back with a fixed quote and timeline. Without a concrete spec, we cannot commit to a number — the scope varies a lot depending on what you include.
On paying us to make it a priority as a plugin: we do not accept payment to move items up the roadmap. If we build it officially, the decision and pricing will be set by the team for the wider marketplace, not per-customer. If you need it on your timeline, the faster path is either (a) commissioning it with us as a custom build or (b) going with your own programmer — both will be quicker than waiting.
On email-based 6-digit OTP: it is on the feature request list but not committed to the next update. No ETA yet.
Hi team I have an issue with my the last update. It says database exist etc invoice component
SQLSTATE[42S01]: Base table or view already exists: 1050 Table ‘ec_invoice_item_tax_components’ already exists (Connection: mysql, Host: localhost, Port: 3306, Database: XXXXXXXXX, SQL: create table `ec_invoice_item_tax_components` (`id` bigint unsigned not null auto_increment primary key, `invoice_item_id` bigint unsigned not null, `name` varchar(191) not null, `code` varchar(50) not null, `rate` decimal(8, 4) not null default ‘0’, `amount` decimal(15, 2) not null default ‘0’, `jurisdiction` varchar(191) null, `metadata` json null, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate ‘utf8mb4_unicode_ci’). HOW DO I CORRECT THIS . Also I noticed that at register page the phone field doesn’t show what is being typed. The site is not fully in use but I need the correct it
Hi,
We have just fixed this issue in Farmart and released it again.
Or go to Admin → Platform administration → System Updater and click “Re-install the latest version” again.
Then it should be fixed.
Thanks for your feedback!
Tested now and it works. Thanks again
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=sharingHi,
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,
It’s in folder public/storage
Hello! No, there are already processed images. Even if I create a folder there, this folder will not appear in Media Files in the admin panel.
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/VjVTGQ4akA1sHello! We reinstalled the application on the same domain. Now it says that the license is active in parallel. How to fix it?
We solved the issue through the personal account. Thank you!
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/m43ht4qy39TUIf 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)?
Hi,
We will add that fields to product import export in the next version.
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.
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:
- Confirm buyer destination country is allowed by the profile
-
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)
-
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.
====================================================
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.
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:- Auto Translate to French
- Auto Translate to Spanish
- 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.
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.
- If an image is added from an external source then it’s pulled into the systems’ designated storage.
- Option to ignore escaping specific domains along with the option to make each ignored domain follow or no follow
- Option to make these settings be applied to imported products as well
Hi,
We will consider it.
Thanks for your suggestions.
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.