Modesy - Marketplace & Classified Ads Script v2.6.3

by Codingest

Getting Started

Thank you for purchasing our script! If you have any questions that are not covered in this help file, please contact us through our online helpdesk. You can create a free account and submit your requests easily. We’ll be happy to assist you. Thank you!

Introduction

Modesy is a complete marketplace and classified ads script that helps you launch a powerful online business without limits. It combines a full-featured multi-vendor marketplace with a dynamic classifieds system, so you can either earn commissions from vendors or sell your own products in a modern storefront.

With advanced product options, shipping system, and support for both physical goods and digital downloads, managing your store is effortless.

Built on a secure, fast, and SEO-optimized infrastructure, Modesy ensures a smooth experience across all devices. The intuitive Admin Panel gives you full control to customize and grow your platform.

More than just a script, Modesy is a complete solution for entrepreneurs who want flexibility, power, and a professional online presence.



Technologies used:
  • PHP CodeIgniter 4
  • HTML 5
  • CSS 3
  • Bootstrap 4
  • JQUERY
  • AJAX

Key Features:

Core Platform & E-commerce Features

  • Marketplace and Classified Ads: Operate the script as a traditional Multi-Vendor Marketplace for selling products or as a Classified Ads platform for listings. This core setting can be changed anytime from the admin panel.
  • Multi-Vendor System: Easily enable or disable a full multi-vendor marketplace, allowing others to sell on your site.
  • Versatile Product Types: Sell Physical Products, Digital Downloads, and Software License Keys all from one platform.
  • Dynamic Product Options System: Build unlimited, complex product variations. Combine options, set rules, and create a truly dynamic purchasing experience for any type of product.
  • AI Content Generation: Integrated AI generator powered by OpenAI. Effortlessly create engaging product descriptions, blog posts, and page content, saving you time and boosting your content strategy.
  • Multiple Payment Gateways: Accept payments with PayPal, Stripe, PayStack, Razorpay, Flutterwave, Iyzico, Midtrans, dLocal Go, YooMoney, and PayTabs.
  • Hierarchical Commission System: A flexible, multi-layered commission system. Set rates at the product, vendor, or category level, with a global default as a fallback.
  • Promoted Products System: Generate revenue by allowing vendors to pay for featured product placements with daily or monthly pricing.
  • Coupon System: Create discount codes and promotions to boost sales and reward customers.
  • Alternative Selling Models: Includes a Bidding System (Request a Quote) for specific products.
  • Membership & Packages System: Create subscription-based packages for vendors to offer different selling tiers and product upload limits.
  • Wallet System: Allow users to deposit funds into an online wallet for faster checkout.
  • Affiliate Program: Empower your users to become brand ambassadors with a built-in affiliate system. They can generate unique referral links and earn a commission on every sale they refer, driving targeted traffic and boosting your revenue.
  • Offline & Manual Payments: Offer Bank Transfer and Cash on Delivery options for greater flexibility.
  • Database-Driven Cart System: Ensures that a customer's shopping cart is saved to their account, allowing them to continue shopping seamlessly across different devices.
  • Unlimited Categories: Organize products with an easy-to-use system for adding, editing, and deleting unlimited categories, including bulk upload capabilities.
  • Custom Fields System: Effortlessly add new data fields to products to capture any information you need.

Vendor & Marketplace Features

  • Dedicated Vendor Dashboard: A central hub for vendors to manage products, view earnings, process orders, and more.
  • Earnings & Payout Management: Vendors can track their earnings and request payouts via PayPal, IBAN, and SWIFT.
  • Centralized Brand Management: Admins can build and manage a central library of brands, which vendors can then assign to their products. This allows customers to easily filter, search, and shop from the brands they trust.
  • Vendor Verification System: Build trust with a verification system that adds a "Verified" badge to trusted sellers.
  • Product Management: Full control over product status, including Pending Products, Hidden Products, and Drafts.
  • Product Cloning: Easily duplicate existing products to create new listings quickly.
  • Rich Product Details: Enhance listings with Image, Video, and Audio previews, a Product Location Map, and an integrated Tags System.

Performance, Scalability & Technology

  • High-Performance & Scalability: Built to grow with your business. The script is engineered for speed and can efficiently manage extensive product catalogs and a deep category hierarchy, delivering a consistently fast experience for all users.
  • Advanced Cache System: Improves site speed and reduces server load with a powerful, built-in caching mechanism.
  • Multiple Storage Solutions: Integrates with Local Storage, AWS S3, Cloudflare R2, and Backblaze B2 for flexible and scalable file management.
  • Progressive Web App (PWA) Ready: Delivers a fast, reliable, and engaging app-like experience to mobile users.
  • Modern Tech Stack: Runs on PHP 8.1+ for optimal performance and security.
  • Flexible Email Libraries: Reliable email delivery with support for PHPMailer, CodeIgniter Mail, Amazon SES, Brevo (Sendinblue), and Mailgun.
  • Automated Image Processing: Features a powerful image engine that automatically optimizes, resizes, and creates multiple versions (e.g., thumbnails, medium) of every uploaded image. It also includes WebP support to serve images in a next-gen format for faster page loads.

Marketing & SEO

  • Fully SEO-Optimized: Built from the ground up with SEO best practices in mind, including SEO-Friendly URLs.
  • JSON-LD Schema Markup: Automatically generates structured data, significantly improving your site's visibility and rich results in search engines.
  • Advanced Sitemap Generator: Automatically generates and updates your sitemap. It can create separate files for products, categories, pages, and blog posts for optimal search engine indexing.
  • RSS Feeds: Provide RSS feeds for products and blog posts to keep your audience updated.

User Engagement & Community

  • Social Login: Allow users to register and log in quickly using Facebook, Google, and VKontakte.
  • Member Profile Pages: Users get their own profiles where they can update information, set a location, and add social links.
  • Follow & Unfollow System: Users can follow their favorite sellers.
  • Wishlist: Allow users to add products to a personal favorites list for later viewing.
  • Private Messaging System: A built-in private messaging system for users and vendors to communicate, complete with notifications.
  • Review & Comment System: Enable user-generated reviews and comments on products, with options for admin approval.

Content Management & Support

  • Blog System: A fully-featured blog to publish articles, with support for categories and tags.
  • Dynamic Page Management: Add, edit, and delete unlimited custom pages (e.g., About Us, Terms of Service).
  • Homepage Slider & Banners: Full control over the homepage slider and promotional banner areas.
  • Ad Spaces Management: Place any ad code (including Google AdSense) in responsive ad spaces throughout the site.
  • Help Center: A complete support solution with a Knowledge Base for articles and a Ticket System for handling user inquiries.
  • Refund System: Manage and process refund requests from customers through the admin and vendor panels.
  • Newsletter System: Collect subscribers and send marketing campaigns directly from the admin panel with an HTML Email Template.

Design & Customization

  • Visual Settings Panel: Easily change the Logo, Favicon, Site Title, Description, Color Scheme, and more without touching any code.
  • Homepage Layout Management: Take full control of your homepage. Easily reorder, enable, or disable sections such as featured products, latest items, and categories directly from the admin panel.
  • Custom CSS/JS Insertion: For advanced customization, add your own custom CSS styles and JavaScript code directly from the admin panel without modifying core files.
  • Watermark System: Automatically add a watermark to your product images to protect them.

Security Features

  • Secure Authentication & Codebase: Built with security as a top priority to protect your data and users.
  • Cross-Site Request Forgery (CSRF) Prevention
  • Cross-Site Scripting (XSS) Prevention
  • Password Hashing
  • Avoiding SQL Injection
  • Login Rate Limiting: Protects against brute-force attacks by limiting the number of login attempts.
  • Clickjacking Protection: Prevents the site from being loaded in an iframe on other domains, protecting users from clickjacking attacks.
  • Cloudflare Turnstile: Protects your site from spam and abuse with a privacy-friendly, user-friendly alternative to traditional CAPTCHA.

Administration & General Features

  • Roles & Permissions System: Create different administrator roles with specific permissions.
  • Email Verification System: Option to require users to verify their email address upon registration.
  • Global & Localization Ready: Full Multilingual and RTL support. Use it globally or for a single country.
  • Maintenance Mode: Easily put your site into maintenance mode during updates.


Server Requirements:

To run the script smoothly, your server must meet the following requirements:

  • PHP Version 8.1 or higher
  • cURL PHP Extension
  • Fileinfo PHP Extension
  • Exif PHP Extension
  • Mbstring PHP Extension

Files

a) CSS Files
  • plugins.css: Contains all CSS libraries.
  • style.css: Contains main css codes. It is separated into sections:

    /* ============ 1. General layout CSS styles ============ */
    code
    /* ============ 2. Header ============ */
    code
    /* ============ 3. Slider ============ */
    code
    etc, etc.
b) JavaScript Files
  • plugins.js: Contains JavaScript plugins.
  • script.js: Contains main JavaScript codes.

Installation

Install the Script: License Required

To install the script, you need a license code. You can generate this code using your domain name and your Envato purchase code.

  1. Visit our Help Desk: https://codingest.com/
  2. Create your account on the system.
  3. Open the Licenses section: https://codingest.com/licenses
  4. Generate your license code.

If you change your domain in the future, you can update it anytime using the Change Domain option.




You can install the script by watching this video.



Or you can follow these steps to install the script:

1. Create a new Database with user that has all permissions.
  • Go to cPanel and Click MySQL® Databases



  • Create a New Database with "utf8mb4_general_ci" collation.



  • Add New User



  • Add User To Database



  • Set User Permissions


2. Upload script files to your hosting (FTP).

  1. Open your cPanel and go to File Manager section.



  2. Go to main directory of your site. Most of the time this folder will be "public_html".



  3. Open this folder and upload codecanyon-modesy-buy-sell-used-stuff.zip file to this folder.



  4. Rigth click the .zip file and select Extract option.



  5. Move all files that in the "modesy-v.." folder to main directory.



  6. Delete unnecessary files/folders: "documentation", "modesy-v.." and "codecanyon-modesy-buy-sell-used-stuff.zip".



3. You will see this page after uploading all files to your FTP. Click "Install" to proceed. If you cannot see this page, you can access install page by entering this link to your browser address bar: http://yourdomain.com/install



4. Click "Go to Support System" button and generate your license code. Enter your license code and then click Next.



5. Check system requirements. If one of these extensions is not enabled, you must enable it from your server settings. If all requirements are provided, click Next.



6. Check folder permissions. If all folders are writable, click Next.



7. Enter your database credentials. Click next.



8. Enter your site URL, admin credentials and your Timezone and click finish. Site URL is your complete site address.
Some examples:
Installing to Main directory: https://abc.com
Installing to subdomain: https://test.abc.com
Installing to folder: https://abc.com/test

You need to enter "http" if you don't have SSL on your site. (Example: http://abc.com)



9. Delete the install folder.



.env Configuration File

This file contains some general settings for your site.

CI_ENVIRONMENT: Default value of this variable is "production". This option will not display if there is an error on your site. Instead, you will see the "An error occurred!" message. To see the errors, you need to change the value of this variable to "development".

Example:
CI_ENVIRONMENT = development

app.baseURL: This is your site base URL. It is very important to add your correct site URL to this field. If you add a wrong site URL, your site will not work.

Examples:
Installing to Main directory:
app.baseURL = https://domain.com
Installing to subdomain:
app.baseURL = https://demo.domain.com
Installing to folder:
app.baseURL = https://domain.com/new

PURCHASE_CODE: You need to enter your purchase code to this field.

LICENSE_KEY: You need to enter your license key to this field.

PAYMENT_ICONS: You can delete the payment icons that you don't want to show on your website from this line. These icons will be displayed on the footer section and cart page.

cookie.prefix: This value is used for cookies to avoid collisions. Default value is "mds_", but you can change this value and add a unique value for your site. You must not add a special character to this field.

File Upload Settings

If you want to upload large files, you may need to make some settings on your server. Also, Modesy performs image optimization while uploading images. This optimization uses memory.

If you try to upload large files without doing some settings on your server, you can get an error.

If you can't upload large files, you need to set these PHP values. These are recommended minimum values.

php_value upload_max_filesize 32M
php_value post_max_size 32M
php_value memory_limit 256M

To set these values follow the steps:

  1. Go to your cPanel and click "Select PHP Version"



  2. Then click "Switch to PHP Options"



  3. Then set the values "upload_max_filesize", "post_max_size" and "memory_limit" as you see in the picture.



Quick Start

  Accessing Admin Panel: After installation, you will be redirected to home page. Login with your Admin email and password. After login, you will see your username in the navigation, click your username and click "Admin Panel" link on the dropdown menu.



  Updating Profile Information: Go to the main navigation, click your username and click "Settings" link on the dropdown menu. In this page you can edit your Email Address, Username, Slug and you can add some text about yourself.

  Changing Admin Password: Go to the main navigation, click your username and click "Settings" link on the dropdown menu. Then click "Change Password" tab. Fill in the form and change you password.

  Updating Contact Information: Go to the main navigation, click your username and click "Settings" link on the dropdown menu. Then click "Contact Informations" tab. Fill in the form and update your location information.

  Adding Social Links to Your Profile: Go to the main navigation, click your username and click "Settings" link on the dropdown menu. Then click "Social Media" tab. Fill in the form and update your social links.

   Adding Slider Item : Open your Admin Panel, go to "Slider" section from navigation and click "Add Slider Item" link, then fill in the form and click Add Slider Item button. Then click "Social Media" tab. Fill in the form and update your social links.

   Adding Product : Click "Sell Now" button that in the main navigation, then fill in the form and click Submit button. Then select your Pricing plan and add your product.

   Approving Product : Open your Admin Panel, go to "Products" section from navigation and click "Pending Products" link, find the product that will be approved. Then click "Select an option" button and click "Approve" option.

  Adding Product Category: Open your Admin Panel, go to "Categories" section from navigation and click "Add Category" link, then fill in the form and click Add Category button.

  Adding Page: Open your Admin Panel, go to "Pages" section from navigation and click "Add Page" link, then fill in the form and click Add Page button.

  Adding Blog Post: Open your Admin Panel, go to "Blog" section from navigation and click "Add Post" link, then fill in the form and click Add Post button.

  Adding Blog Category: Open your Admin Panel, go to "Blog" section from navigation and click "Categories" link, then fill in the "Add Category" form and click Add Category button.

  Send Email to Subscribers: Open your Admin Panel, go to "Newsletter" section from navigation, then fill in the mail form and click Send Email button.

  Social Login Configuration: Open your Admin Panel, go to "Social Login Configuration" section from navigation, then fill in the form and click Save Changes button.

  Generating Sitemap: Open your Admin Panel, go to "Seo Tools" section from navigation, then click Download Sitemap button. Also you can generate your sitemap directly in your FTP by clicking Update Sitemap button.

  Running Ads: If you want to add your ad codes to your website, this is very easy in the Modesy. Open your Admin Panel, go to "Ad Spaces" section from navigation, add your ad codes then click Save Changes button.

  Managing Locations: Modesy has editeble countries and states/cities database. You can manage your locations from Location Settings section. Open your Admin Panel, go to "Location Settings" section from navigation. If you want to edit countries, click Countries link. If you want to edit states/cities, click States link.

  Managing Languages: Open your Admin Panel, go to "Language Settings" section from navigation. If you want to add a new language, fill in the "Add Language" form and click Add Language button. If you want to change default language, select the language from "Default Language" form and click Save Changes button. If you want to edit translations, find the language from "Languages" list and click "Select an option" button, then click "Edit Translations" option and edit translations.

  Making Email Settings: Open your Admin Panel, go to "Email Settings" section from navigation, then fill in the "Email Settings" form and click Save Changes button.

  Making Payment Settings: Open your Admin Panel, go to "Payment Settings" section from navigation, then select options in the "Payment Settings" form and click Save Changes button. You can manage daily and mounthly price from "Pricing" form. You can set your payment accounts in Paypal Account and Stripe Account forms.

Admin Panel

There are some counters in the Admin panel's home page. These counters:
  1. Products: Shows products count
  2. Pending Products: Shows pending products count
  3. Blog Posts: Shows blog posts count
  4. Members: Shows members count
  5. Orders: Shows orders count
In addition to these counters, there are also sections that show latest records:

  1. Latest Orders: Shows last added orders
  2. Latest Transactions: Shows last transactions
  3. Latest Pending Products: Shows last added pending products
  4. Latest Products: Shows last approved products
  5. Latest Transactions (Promoted Products): Shows last transactions for promoted products
  6. Latest Product Reviews: Shows last added products reviews
  7. Latest Members: Shows last registered members

Theme

  • Menu Limit: Set the maximum number of visible links in the main navigation. Any links that exceed this limit will be automatically grouped into a "More" dropdown menu for a clean and organized look.
  • Navigation Template: Select your preferred menu style, with options for a standard or a full-width layout to best fit your content.
  • Featured Categories Style: Select the design for the featured categories section on the homepage, with options for a classic Grid Layout or modern Round Boxes.
  • Product Image Display Mode: Control how product images are displayed. Choose "Fill Container" to crop images for a uniform look, or "Show Full Image" to fit the entire image within the container.

Slider

You can add, update or delete your slider items from this section.

Add Slider Item: Go to "Slider" section from navigation and fill out the Add Slider Item form.
  • Language:Language of the slider item.
  • Title: Title that will be displayed on slider image.
  • Description: Description that will be displayed on slider image.
  • Link: The URL that will be opened when this slider item clicked.
  • Order: Order value of the slider item.
  • Button Text: The text that will be showed on your button. (Buy now, shop now, etc..)
  • Text Color: You can select a color for texts on your slider.
  • Button Color: You can select a color for slider button.
  • Button Text Color: You can select a color for slider button text.
  • Animations: Modesy has different animation options for title, description and button on the slider. You can select different animations for your slider items.
  • Image: Your slider image.
Update Slider Item: You can edit your slider items by clicking "Select an option" button and selecting "Edit" option.

Delete Slider Item: You can delete your slider items by clicking "Select an option" button and selecting "Delete" option.

Slider Settings
  • Status:You can enable & disable slider with this option.
  • Type: Modesy has full-width and boxed slider options. You can select your slider type with this option.
  • Effect: You can select slide or fade affect for your slider. Default will be "fade".

Homepage Manager

You can manage your homepage from this section.

Featured Categories

Featured categories is the section where the selected categories are displayed under the slider. You can select the categories you want to show under the Slider from this section.

Products by Category

You can show your products by category on your homepage. You can choose the categories you want to show from this section. The last 15 products belonging to the categories will be shown in a slider.

Homepage Banners

If you want to add an advertisement or a banner for a discount on your site, you can add it from this section.

  • Banner URL: The URL of the advertisement or discount.
  • Order: Banners will be sorted by this value.
  • Banner Width: The width of your banner in %. Max width is 100%.
  • Location: You can place your banner in different location. Your banner will be placed under the section you selected.
  • Banner: Banner image.

Settings

  • Featured Categories: Option to hide or show featured categories.
  • Featured Products: Option to hide or show featured products.
  • Latest Products: Option to hide or show latest products (new arrivals).
  • Blog Slider: Option to hide or show blog slider.
  • Products per Row on Homepage: Set how many products will be displayed in each row on the homepage.
  • Number of Featured Products to Show: You can set the number of featured products you want to show with this option.
  • Number of Latest Products to Show: You can set the number of latest products you want to show with this option.

Orders

You can see and manage ordes from this section.

Orders: Go to "Orders" section from navigation and click Orders link.
  • View Details: You can view all order details by select this option.
  • Completed/Processing: You can change order status by selecting these options.
  • Payment Received/Payment Not Received: You can change order payment status by selecting these options.
  • Delete: You can delete an order with this option.
Transactions: Go to "Orders" section from navigation and click Transactions link. You can see payment transactions from this section.

Digital Sales

You can see all digital sales from this page. If you delete a digital sale, it will be deleted from buyers downloads page.

Refund Requests

You can manage all refund requests on the site from this section.

How it works

  1. On the front-end, buyers can access the Refund section to submit a new request or view previous requests.
  2. After a buyer submits a refund request, the item’s seller will see it in the Refund Requests area of the Vendor Dashboard.
  3. The seller can approve or reject the request.

If the seller approves

  • The Admin reviews and finalizes the refund.
  • The refunded amount is sent to the buyer.
  • If the seller had already received the funds, the same amount is automatically deducted from the seller’s balance.

If the seller rejects

  • The buyer can escalate the issue by contacting site management via the support desk.

Note: Admin has the final authority to approve and process refunds.

Products

You can manage products from this section.

Products: You can see approved products from this page.

Featured Products: You can see promoted products in this section.

Special Offers: You can see special discounted products in this section.

Edited Products: You can see products edited by vendors in this section. If you want these edited products to remain hidden until approved, you can do this with the 'Product Approval for Edited Products' option under the Preferences section.

Pending Products: You can see pending products (vaiting for approval) from this page.

Hidden Products: You can see hidden products from this page.

Expired Products: If the membership plan purchased by the seller expires and if the seller does not renew the plan within 3 days, the products of this seller will be added to this section. This section is only visible when the membership plans system is active.

Sold Products: You can see sold products from this page.

Drafts: You can see drafts from this page.

Deleted Products: You can see deleted products from this page.

Options: You can see options by clicking "Select an option" button on each page.

  • View Details: You can see all details of a product by selecting this option.
  • Edit: You can edit a product by selecting this option.
  • Delete: You can delete a product by selecting this option.
  • Delete Permanently: If you want to delete a product with images and all other connected records, you can select this option.
  • Add to Featured: You can add a product to featured products by selecting this option.
  • Remove from Featured: You can remove a product from featured products by selecting this option.
  • Add to Special Offers: You can add a product to special offers by selecting this option.
  • Remove from Special Offers: You can remove a product from special offers by selecting this option.
  • Approve: You can approve a product by selecting this option.

Bulk Product Upload

With the bulk product upload feature, you can easily upload or update multiple products at once using a CSV file. This saves time and ensures consistency when managing a large number of products.

How It Works

There are two main ways to use the bulk upload feature:

1. Add New Products

  1. Download the CSV template from this section.
  2. Add your products into the CSV file by filling in the required and optional columns.
  3. Upload the completed CSV file back into the system.

Important: Please pay attention to the data type of each column (e.g., numbers, text, dates). You can see detailed explanations of all required and optional columns in the table below.

2. Edit Existing Products

  1. Add an "id" column to the CSV template. (You can find the product ID numbers on the Products page.)
  2. Include only the columns you want to update (for example, price, stock, etc.).
  3. Upload the updated CSV file to apply the changes.

For example, if you want to update the stock and prices of your products, your CSV file should look like this:

"id","price","price_discounted","stock"
"1","30","20","1000"
"5","40","40","500"

* To update product prices, you must include both the "price" and "price_discounted" columns in your CSV file.


Multi-language Support

The CSV upload feature also supports multiple languages. This allows you to add product information in more than one language, making your store multilingual.

How to Add Multiple Languages

  1. Each language in your system has a Language ID (for example, English = 1, German = 2). You can find the language ID numbers on the Languages page.
  2. In your CSV file, add extra columns for each language, following this format:
    • For the main language: title, short_description, description, tags
    • For a second language with ID 2: title_lang2, short_description_lang2, description_lang2, tags_lang2
  3. When you upload your CSV file, the system will automatically detect and save the translations.

Example

"id","title","short_description","description","tags",....,"title_lang2","short_description_lang2","description_lang2","tags_lang2"
"1","Red Dress","Beautiful red dress","A lovely red dress for summer","dress,red,fashion",....,"Rotes Kleid","Schönes rotes Kleid","Ein hübsches rotes Kleid für den Sommer","kleid,rot,mode"

In this example: - The product is added in English (main language). - The same product details are also added in German (Language ID: 2). - Both language versions will be available on your site.



CSV Columns

Column Description
title Data Type: Text
Required
Example: Modern grey couch and pillows
slug Data Type: Text
Optional (If you leave it empty, it will be generated automatically.)
Example: modern-grey-couch-and-pillows
sku Data Type: Text
Optional
Example: MD-GR-6898
category_id Data Type: Number
Required
Example: 1
brand_id Data Type: Number
Optional
Example: 1
price Data Type: Decimal/Number
Required
Example: 50
Example: 45.90
Example: 3456.25
price_discounted Data Type: Decimal/Number
Optional
Example: 40
Example: 35.90
Example: 2456.25
vat_rate Data Type: Number (Percentage)
Optional
Example: 8
stock Data Type: Number
Required
Example: 100
short_description Data Type: Text
Optional
Example: It is a nice and comfortable couch
description Data Type: Text
Optional
Example: It is a nice and comfortable couch...
tags Data Type: Text
Optional
Example: nice, comfortable, couch
image_url Data Type: Text
Optional
Example:
https://upload.wikimedia.org/wikipedia/commons/7/70/Labrador-sea-paamiut.jpg

Example:
https://upload.wikimedia.org/wikipedia/commons/7/70/Labrador-sea-paamiut.jpg,
https://upload.wikimedia.org/wikipedia/commons/thumb/4/42/Shaqi_jrvej.jpg/1600px-Shaqi_jrvej.jpg

*You can add multiple image links by placing commas between them.
external_link Data Type: Text
Optional
Example: https://domain.com/product_url
updated_at Data Type: Timestamp
Optional
Example: 2024-06-30 10:27:00

*If you leave it blank, the system will not assign an update date.
created_at Data Type: Timestamp
Optional
Example: 2024-06-30 10:27:00

*If you leave it blank, the system will automatically assign the current date.

Quote Requests

You can see all quotue requests that sent to the sellers from this section.

Categories

You can add, update or delete categories from this section.

Add Category: Go to "Categories" section from navigation and click Categories. Then fill in the Add Category form.
  • Category Name: Category name. You should enter according to language.
  • Slug: Slug for SEO friendly url. You can add custom slug. If you leave it empty, it will be generated automatically.
  • Description: You can add Description (Meta Tag) for category.
  • Keywords: You can add Keywords (Meta Tag) for category.
  • Order: Your categories will be listed according to this order.
  • Homepage Order: Your featured categories will be listed according to this order.
  • Parent Category: You can select a top (parent) category.
  • Visibility: You can hide and show a cateogory with this option.
  • Image: Category image.
Update Category: Go to "Categories" section from navigation and click Categories link. Find category that you want to edit and select "Edit" option by clicking "Select an option" button. Then make your edits and click "Save Changes" button.

Delete Category: On the same list you can delete categories by selecting "Delete" option for each category.


Rebuild Category Paths

This option regenerates all category paths from scratch based on the parent–child relationships between categories. Normally, these paths are created and updated automatically whenever you add, edit, or delete a category. Therefore, you should only use this option in special cases, such as when the data structure has been corrupted or paths are not working correctly.


Bulk Category Upload

With the bulk category upload feature, you can import multiple categories into the system at once using a CSV file. This is especially useful for setting up a store quickly or when migrating from another system.

How It Works

  1. Download the CSV template for categories.
  2. Fill in your category information according to the table below.
  3. Upload the completed CSV file into the system.

Important: Required fields must be filled in. Optional fields can be left blank if not needed. If you leave the slug field empty, the system will automatically generate it from the category name.

CSV Fields

Field Description
category_id Data Type: Integer
Required
Example: 1
name Data Type: String
Required
Example: Clothing
slug Data Type: String
Required (If left empty, it will be generated automatically from the category name.)
Example: clothing
parent_id Data Type: Integer
Required
Example: 1
For parent categories, enter 0.
category_order Data Type: Integer
Required
Example: 1
meta_title Data Type: String
Optional
Example: Clothing
meta_description Data Type: String
Optional
Example: Category Clothing
meta_keywords Data Type: String
Optional
Example: category, clothing

Multi-language Support

The bulk category upload feature also supports multiple languages. For each additional language, you can add extra columns to your CSV file, following the Language ID.

For example, if the second language has the ID number 2, you can use:

  • name_lang2
  • meta_title_lang2
  • meta_description_lang2
  • meta_keywords_lang2
Example
"category_id","name","slug","parent_id","category_order","meta_title","meta_description","meta_keywords","name_lang2","meta_title_lang2","meta_description_lang2","meta_keywords_lang2"
"1","Clothing","clothing","0","1","Clothing","All clothing items","clothes,fashion","Kleidung","Kleidung","Alle Kleidungsstücke","kleidung,mode"
  

In this example: - The main language category is added in English. - The same category is also added in German (Language ID: 2). - Both language versions will be available on your site.

Tag

The Tags section allows you to manage all product tags in your store. Tags are useful for improving product search, filtering, and SEO.

  • Add Tags: You can create new tags to categorize and highlight products more effectively.
  • Edit Tags: Existing tags can be updated if you need to correct or refine them.
  • Delete Tags: Unnecessary or duplicate tags can be removed at any time.

Tags are used by the search engine to deliver more accurate results to customers.

Brands

If you want to add brands to your site, you can do so by selecting the categories they belong to in this section. A brand can belong to multiple categories at the same time.

Status: You can enable/disable the Brands system with this option.

Optional: You can specify whether selecting a brand is mandatory or optional when adding a product with this option.

Where to Display: You can choose whether the product's brand is displayed directly below the product price or in the "Additional Information" section on the product details page with this option.

Custom Fields

Custom fields let you add new fields to "Sell Now" page. Like brand, color, size... You can add, update or delete custom fields from this section.

Add Custom Field: Go to "Custom Fields" section from navigation and click Add Custom Field. Then fill in the Add Custom Field form.
  • Field Name: Field name. You should enter according to language.
  • Type: From this section you can select appropriate input type for the custom field.
  • Where to Display: With this option you can choose where you want to show your custom field on the product details page. If you select the "Product Details" option, your custom field will appear under the product price on the product details page. If you choose the other option, it will appear under the "Additional Information" tab.
  • Order: Custom fields will be displayed according to this order.
  • Required: You can determine whether this field is required or not.
  • Status: You can enable or disable field.
Update Custom Field: Go to "Custom Fields" section from navigation and click Custom Fields link. Find custom field that you want to edit and select "Edit" option by clicking "Select an option" button. Then make your edits and click "Save Changes" button.

Delete Custom Field: On the same list you can delete custom fields by selecting "Delete" option for each field.


Bulk Custom Field Upload


With the bulk custom fields upload feature, you can add or update multiple product custom fields at once using a CSV file. This is especially useful for quickly managing product attributes like material, color, size, and other specifications.

How It Works

  1. Download the CSV template for custom fields.
  2. Fill in your custom field information according to the table below.
  3. Upload the completed CSV file into the system.

Important: Required fields must be filled in. Optional fields can be left blank if not needed.

CSV Fields

Field Description
name Data Type: String
Required
Example: Material
field_type Data Type: String
Required
Example: single_select

Types:
"text": Short text
"textarea": Long text
"number": Numeric value
"date": Date
"single_select": Single choice
"multi_select": Multiple choices
is_required Data Type: Integer
Required
Example: 1
1 or 0
status Data Type: Integer
Required
Example: 1
1 or 0
field_order Data Type: Integer
Required
Example: 2
is_product_filter Data Type: Integer
Required
Example: 1
1 or 0
category_id Data Type: Integer
Required
Example: 5
options Data Type: String
Required
Example: Leather, Synthetic, Fabric Lining

Multi-language Support

The bulk custom fields upload feature also supports multiple languages. For each additional language, you can add extra columns to your CSV file, following the Language ID.

For example, if the second language has the ID number 2, you can use:

  • name_lang2
  • options_lang2
Example
"name","field_type","is_required","status","field_order","is_product_filter","category_id","options","name_lang2","options_lang2"
"Material","single_select","1","1","1","1","5","Leather,Synthetic,Fabric Lining","Material (DE)","Leder,Synthetik,Textilfutter"
"Color","single_select","1","1","2","1","5","Red,Blue,Green","Farbe (DE)","Rot,Blau,Grün"

In this example: - The main language custom fields are added in English. - The same fields are also added in German (Language ID: 2). - Both language versions will be available in your system.

Payments

You can see service (deposit, promotion and membersip) payments transactions in this section.

Membership Payments: The payments made by members to purchase a membership plan are listed in this section.

Promotion Payments: The payments made by vendors to promote their products are listed in this section.

Wallet Deposits: The payments made by members to add money to their wallets are listed in this section.

Bank Transfer Reports: When a customer purchases a product via bank transfer or makes a service payment, they can send a receipt or a notification confirming that the payment has been made. These notifications will be listed in this section.

Earnings

Earnings: Go to "Earnings" section from navigation and click Earnings link. You can see seller earnings from this section.

Seller Balances: Go to "Earnings" section from navigation and click Seller Balances link. You can see balance and number of total sales of all sellers from this section. You can edit number of sales and balances by selecting edit option.

Payouts

Add Payout: Go to "Payouts" section from navigation and click Add Payout link. You can add a payout for a seller from this section.

Payout Requests: Go to "Payouts" section from navigation and click Payout Requests link. Sellers can withdraw their money by adding a payout request. Admin will send seller money and click "Completed" option for the request. Payout amount will be decreased from seller balance.

Completed Payouts: Go to "Payouts" section from navigation and click Completed Payouts link. You can see completed payouts from this section.

Payout Settings: Go to "Payouts" section from navigation and click Payout Settings link. You can select payouts methods and you can determine minimum payout amounts from this section.

Pages

You can add, update and delete pages from this section.

Add Page: Go to "Pages" section from navigation and click Add Page link. Then fill in the form.
  • Title: Page title.
  • Slug: Slug for SEO friendly url. You can add custom slug. If you leave it empty, it will be generated automatically.
  • Description: You can add Description (Meta Tag) for page.
  • Keywords: You can add Keywords (Meta Tag) for page.
  • Language: Page will be displayed according to this language
  • Order: Pages will order according to this value.
  • Location: You can select page link location.
  • Visibility: You can hide or show page.
  • Content: Page content.
Update Page: Go to "Pages"" section from navigation and click "Pages" link. Find page that you want to edit and select "Edit" option by clicking "Select an option" button. Then make your edits and click "Save Changes" button.

Delete Page: On the same list you can delete pages by selecting "Delete" option for each page.

Blog

You can manage blog posts and blog categories from this section.

Add Blog Post: Go to "Blog" section from navigation and click Add Post link. Then fill in the form.
  • Title: Post title
  • Slug: Slug for SEO friendly url. You can add custom slug. If you leave it empty, it will be generated automatically.
  • Summary & Description: You can add Summary & Description (Meta Tag) for post
  • Keywords: You can add Keywords (Meta Tag) for page
  • Language: Post will be displayed according to this language
  • Category: Post category
  • Tags: You can add tags for post
  • Image: Post image
  • Content: Page content
Update Blog Post: Go to "Blog" section from navigation and click "Posts" link. Find page that you want to edit and select "Edit" option by clicking "Select an option" button. Then make your edits and click "Save Changes" button.

Delete Page: On the same list you can delete posts by selecting "Delete" option for each post.

Add Category: Go to "Blog" section from navigation and click Categories. Then fill in the Add Category form.
  • Language: Category will be displayed according to this language
  • Category Name: Category name
  • Slug: Slug for SEO friendly url. You can add custom slug. If you leave it empty, it will be generated automatically.
  • Description: You can add Description (Meta Tag) for category.
  • Keywords: You can add Keywords (Meta Tag) for category.
  • Order: Your categories will be listed according to this order.
Update Category: Go to "Blog" section from navigation and click Categories link. Find category that you want to edit and select "Edit" option by clicking "Select an option" button. Then make your edits and click "Save Changes" button.

Delete Category: On the same list you can delete categories by selecting "Delete" option for each category.

Location

You can manage countries, states and cities from this section.

Countries: You can add, edit and delete countries from this section.
States: You can add, edit and delete states from this section.
Cities: You can add, edit and delete cities from this section.

Single Country Mode: The single country mode allows your site to operate for only one country. If you want to use your site solely for your own country, you can enable this option and select your country. Doing so will hide other countries.

Users

You can manage administrators and members from this section.

Add Administrator: You can add a new administrator from this page.

Administrators: You can see administrators from this page.

Vendors: You can see vendors from this page. A user can be deleted from vendors with "Close User Shop" option.

Members: You can see members from this page. A user can be converted to a vendor with "Open User Shop" option.

Options:
  • Open User Shop: You can enable a member shop with this option. When you select this option the role of the member will be "vendor".
  • Ban User: If you want to ban a member, you can select "Ban User" option by clicking "Select an option" button.
  • Edit: You can edit a user by selecting this option.
  • Delete: If you want to delete a member, you can select "Delete" option by clicking "Select an option" button.

Shop Opening Requests: In this section, you can view all shop opening requests submitted by users. This allows you to manage and review incoming shop applications efficiently.

User Login Activities: In this section, you can track users' login records on the site. The "User Agent" represents the browser data of the user logging in. These records allow you to monitor account activities for potential fraudulent activities.

Account Deletion Requests: A user may want to delete their account from the profile settings. If they wish to do so, it requires Admin approval. In this section, you can approve or reject account deletion requests.

Membership Plans

Membership plans system is a system that allows you to sell membership packages with time limit and product addition limit to the sellers on your site. You can manage existing plans or create new plans from the section.

  • Title: Name of the membership plan.
  • Number of Ads: The ads limit that a seller can add. Sellers cannot add ads more than this value. If a seller's total number of products reaches this limit value, adding products will be disabled.
  • Duration: The time limit for the subscription package to be active. If this time expires and the seller does not renews the plan, the products of this seller will be added to the "Expired Products" section and will not be displayed on the site. If the seller renew the plan, the products will continue to be displayed on the site.
  • Price: The price of the plan.
  • Order: The added plans will be sorted by this value.
  • Popular: You can select this option if you want to show a "popular" badge.
  • Features: The features of the plan.


How It Works

After creating your membership plans, you need to activate this system from the "Settings" section in the Membership Plans section. When this system is active, every vendor will have to buy one of these plans to add products. If we don't want to force vendors to buy one of these plans, you can create free plans also.

Users who are not yet vendors will see these plans after clicking the "Sell Now" button. Users will buy one of these plans, fill out the shop opening form, and this request will reach site management ( you can see these requests on the "Shop Opening Requests" page). Also, vendors can see and renew their plans from the "Shop Settings" section in the Dashboard.

Roles & Permissions

This system allows you to assign different roles and permissions for users using your site. You can add new roles and you can edit permissions of these roles from this section.

Default Roles

Super Admin: This role is the main role that can manage everything in the site. We do not recommend you to assign this role to another user. You can create a new Admin role instead of assigning this role to another user.
Vendor: This role allows users to add products. When you accept a shop request of a user, the role of the user will be Vendor.
Member: This is the default role for every user in the system.

Changing a User's Role

To change the role of a user, you can go to the "Users / Members" section and select the "Change User Role" option.

Help Center

Modesy has a help center that all users can contact the site management.

Knowledge Base

With this system, you can add all the information about how to use the features on your site, your site rules, refund conditions, and all other information on your site. You can create different categories for your topics and add the necessary articles to these categories. Users will see these articles on the Help Center page on the front-side of the site.

Support Tickets

You can see and reply to tickets sent by users in this section.

Cache System

The Cache System allows you to manage and optimize how data is stored temporarily for faster access on your site. You can control caching for frequently updated products as well as for static content like categories, custom fields, and settings.

Product Cache System

The Product Cache is used for products that are updated frequently. It ensures that product pages load faster by storing temporary copies of product data.

  • Status: Enable or disable product caching.
  • Refresh Cache Files When Database Changes: Automatically refresh cached product data when changes are made in the database.
  • Cache Refresh Time (Minutes): Set how often the cache should be automatically refreshed. Example: 30 minutes.

Static Cache System

The Static Cache is used for records that do not change frequently, such as categories, custom fields, site settings, and language data. This improves site performance for content that rarely changes.

  • Static Content Cache: Enable or disable caching for settings, languages, pages, and other static content.
  • Category Cache: Enable or disable caching for categories, brands, and custom fields.

SEO Tools

You can make your SEO settings from this section.

Google Analytics

You can add your Google Analytics code from here. You should add all the JavaScript code you were given here, not just the client ID.

Generate Sitemap

You can generate a sitemap.xml file from this section.

You need to create a cron job function to automatically update your sitemap. Read this section to see how you can add a cron job function in your server: Cron Job

This is the URL that you need to run with your cron job function: http://domain.com/cron/update-sitemap
**Do not forget to change "domain.com" with your domain name.

Ad Spaces

Modesy has a mobile-friendly advertising system.
There are 2 different ad code fields for each ad space (Desktop Banner and Mobile Banner) and thanks to these options, your site will not have any design problems on mobile devices.
The Desktop Banner will be displayed on screens larger than 992px and the Mobile Banner will be displayed on screens smaller than 992px. So when adding an ad you have to fill both fields.

Ad Size: You can add an ad of any size by paying attention to the placement of the ad spaces. You need to enter the dimensions of the ad with this option.
Ad Code: You will paste your ad code into this field.


AdSense Activation Code

You can add your Google Adsense code from this section. This code will be added to footer of the site and it will be enabled for all pages. After adding this code, you can add your ad codes to ad spaces.

Chat Messages

In this section, you can see and manage messages between all users.

Contact Messages

You can see the messages that users sent from the contact form on the site from this section.
If you want to delete a message from list, click the Select an option button and click delete.

Reviews

You can see all reviews that users added from this section. If you want to delete a review, you can select "Delete" option by clicking "Select an option" button.

Comments

Modesy has comment approval system. Only approved comments will be published in the site. If you want to disable this system and publish directly all the comments, you can disable this system from "Preferences" section in the Admin panel.

Pending Comments

You can see and approve the pending comments from this section.

Approved Comments

You can see and delete the approved comments from this section.

Abuse Reports

Modesy has a system for reporting malicious or abusive content. Site members can report a product, seller, comment and review. Site management can see these contents on this section and these reported contents can be seen and deleted from this section.

Newsletter

The Newsletter allows you to share some updates and interesting things with the users.

Users: All registered users are listed on this list. You can select the registered users that you want to send email and click the "Send Email" button.
Subscribers: All subscribers are listed on this list. You can select the subscribers that you want to send email and click the "Send Email" button.

Settings:
  • Status: You can enable or disable the newsletter system with this option.
  • Newsletter Popup: Modesy has a newsletter popup. New visitors will see this popup when they open the site. You can enable or disable this popup with this option.
  • Image: You can upload your image for the newsletter popup with this option.

Affiliate Program

An affiliate program is a marketing strategy where businesses partner with individuals or other businesses (called affiliates) to promote their products or services. With this system, affiliates earn a commission for each sale they help generate. This not only motivates affiliates to actively promote products but also increases the site’s visibility and sales by reaching broader audiences through affiliate-driven marketing efforts.

How does it work?
Users interested in the Affiliate Program can join through the "Affiliate Program" page. Once enrolled, they can generate personalized affiliate links for each product (if the product is part of the program) via the "Create affiliate link" option on the product details page. If a customer opens the product page through these links and completes the purchase within 30 days, the affiliate link owner will earn a commission credited to their wallet at the specified rate.

Additionally, sellers can choose to offer a discount to the buyer. If the "Vendor Based" affiliate system is enabled, these discounts will be deducted from the seller's earnings.

Affiliate Program earnings can be tracked in the "Referral Earnings" section of the wallet, and the generated links can be viewed in the "Affiliate Links" section within the Profile settings.

Status: With this option, you can activate or deactivate this system.

Site-based (for all products, site pays the commission): When this option is enabled, all products on the site will be included in this program, and all commissions and discounts will be paid by the site itself.

Seller-based (for products selected by the seller, seller pays the commission): When this option is active, the sellers decide whether their products are included in this program. Sellers can choose to include all their products or only specific ones. Commissions and discounts will be automatically deducted from the seller's earnings.

Preferences

You can manage your site settings from this section.

System

  • Physical Products: You can enable & disable physical products with this option.
  • Digital Products: You can enable & disable digital products with this option.
  • Marketplace: You can enable & disable marketplace system with this option. If you disable this option, there won't be buy option in the site.
  • Classified Ads: You can enable & disable classified ads system with this option. If you disable this option, seller cannot add their products without buy option.
  • Bidding System: You can enable & disable bidding system with this option.
  • Selling License Keys: You can enable & disable selling license keys system with this option.
  • Multi-Vendor System: If you disable multi-vendor system, only Admin can add products.
  • Timezone: You can set your timezone with this field.

General

  • Multilingual System: You can enable or disable multilingual system with this option.
  • RSS System: You can enable or disable RSS system with this option.
  • Vendor Verification System: You can enable or disable Vendor Verification system with this option. You can disable if you want to allow all users to add products.
  • Show Vendor Contact Information on the Site: If you don't want to show vendors contact information in your site, you can select "No" for this option.
  • Show Vendor Contact Information to Guests : If you don't want to show vendors contact information to guests, you can select "No" for this option.
  • Guest Checkout: You can enable or disable Guest Checkout system with this option.
  • Search by Location : You can enable or disable the location search section on the header of the site with this option.
  • Progressive Web App (PWA): You can enable or disable PWA with this option.

Products

  • Product Approval for New Products: If you want to review and approve products added by sellers before they are published, you can select the "Enable" option for this setting. This allows you to ensure that products meet the platform's quality and compliance standards before they are visible to customers.
  • Product Approval for Edited Products : If you want to review and approve a product after it has been edited by sellers, you can select the "Enable, Hide Products Until Approved" option for this setting. If the "Enable, Do Not Hide Products" option is selected, the products will be visible in the "Edited Products" section but will not be hidden on the site. This allows customers to see the products while still allowing for review and approval of any changes made.
  • Featured Products System: If you don't want featured products in your site, you can select disable option.
  • Vendor Bulk Product Upload: Sellers can import their products with a CSV file from the dashboard. You can enable or disable this feature for the sellers with this option.
  • Show Sold Products on the Site: Sellers can set their product status to "sold". These products can no longer be purchased by customers. You can show or hide these products on your site with this option.
  • Product Link Structure: You can select product URL structure with this option.
  • Reviews: You can enable or disable review system with this option.
  • Product Comments: You can enable or disable product comment system with this option.
  • Blog Comments: You can enable or disable blog comment system with this option.
  • Comment Approval System: You can enable or disable comment approval system with this option. If you disable this system, the comments will be directly displayed in your site.

Shop

  • Refund System: You can enable or disable the refund system with this option.
  • Show Number of Sales on Profile: The number of sales of sellers are displayed on their profiles. If you wish to hide this information, you can select "No" for this option.
  • Allow Vendors to Change Their Shop Name: With this option, you can choose whether sellers are allowed to change their store names.
  • Show Customer Email to Seller: If you do not want to show the buyer's e-mail address in the sales details and invoice, you can disable it with this option..
  • Show Customer Phone Number to Seller: If you do not want to show the buyer's phone number address in the sales details and invoice, you can disable it with this option..
  • Auto-Approve Unapproved Orders (after x days): For an order to be completed, it must be approved by the buyer. However, there may be instances where the buyer receives the order but does not approve it. If you enable this option and enter a number of days, the orders will be automatically approved after this period. However, this check will be triggered when the admin panel is accessed.
  • Request Documents from Vendors to Open a Store: To sell a product on your site, users must first submit a store request. If you want users to send some documents while sending a store opening request, you can activate this option and write the name of the files you want to be uploaded as a description.

Wallet

  • Wallet: With this option, you can enable or disable the wallet system.
  • Wallet Deposit: With this option, you can enable or disable the option to add funds to the wallet.
  • Paying with Wallet Balance: Registered users can make payments on the site using their wallet balance if they choose to and have funds available. You can use this option to enable or disable payments made with the wallet balance.
  • Minimum Deposit Amount: You can set a minimum deposit amount with this option.

File Upload

  • Image File Format: You can choose in which format your image files will be uploaded with this option. If you choose JPG, PNG or WEBP, your image files will be converted to selected file format during upload.
  • Product Image Upload: With this option, you can make image upload mandatory or optional.
  • Product Image Upload Limit: With this option, you can determine the maximum number of images that can be uploaded for a product.
  • Max File Size (Image): With this option, you can specify the maximum size of an image file to be uploaded.
  • Max File Size (Video): With this option, you can specify the maximum size of an video file to be uploaded.
  • Max File Size (Audio): With this option, you can specify the maximum size of an audio file to be uploaded.

Storage

The script offers multiple storage solutions to manage your files. If you do not have enough disk space on your server, you can use an external object storage service to store your files efficiently.

Local Storage (Default)

This is the default and simplest method. All uploaded files are stored directly on your web server in the uploads/ directory. It requires no external configuration but may consume significant server disk space and bandwidth as your site grows.




Amazon S3

  1. Go to https://aws.amazon.com/s3/ and create your account.

  2. Click AWS Management Console



  3. Click S3 under the Storage menu



  4. Click the "Create bucket" button.



  5. Enter your "bucket name" and select your region. "us-east-1" will be your region code and you need to enter this value from the Admin panel. Your region code can be different according to your location.


    Select the "ACLs enabled" option.



    Unselect the "Block all public" option and select "I acknowledge that the..." option.



    Disable bucket key.


    Click the "Create bucket" button.



  6. Click the My Security Credentials option.



  7. Click Access keys tab. Then click Create New Access Key button and create your access keys. You can need to enter these keys from "AWS S3 Storage" section in Admin panel.



Adding Created API Keys from the Admin Panel

After creating your bucket and your API keys (access key and secret key), you need to go to the Storage Section in your Admin panel and add the credentials from the AWS S3 Storage form.

AWS Access Key: Enter the access key that you created.
AWS Secret Key: Enter the secret key that you created.
Bucket Name: Enter your bucket name. (Example: modesy)
Region: Enter your region code. (Example: us-east-1)



Cloudflare R2

Cloudflare R2 is an S3-compatible object storage service that provides reliable and scalable storage for your files, making it easy to manage and deliver content efficiently.

Configuration Steps:

To use the Cloudflare R2 service, you need to add your domain to Cloudflare by updating your domain's nameservers. If you want to serve your files through a different domain, you can add that domain instead of your main domain.

  1. Adding Domain:
    • Log in to your Cloudflare dashboard.
    • Add your domain name in the Domains section and click the "Continue" button.
    • Select the Free plan
    • Then, follow Cloudflare’s instructions to update your domain’s nameservers. Changing nameservers can take up to 24 hours.
  2. Create an R2 Bucket:
    • From the sidebar, navigate to R2 object storage.
    • Click Create bucket and give your bucket a unique, lowercase name (e.g., your-marketplace-files).
    • Select a geographical location and click Create bucket.
  3. Connect a Custom Domain:
    • In the R2 dashboard, click on the name of the bucket you created.
    • Go to the Settings tab.
    • In this page, click + Add for Custom Domains.
    • Enter a subdomain of the domain you have added to Cloudflare. For example, if your main domain is yourdomain.com, you could use storage.yourdomain.com as the subdomain for this setup.
    • Once the domain is active, this will be your public URL for the files.
  4. Get R2 API Credentials:
    • On the main R2 page, find the "{} API" dropdown and select the Manage API Tokens option.
    • Click Create Account API Token.
    • Give the token a descriptive name (e.g., Script Access Token).
    • Under Permissions, select Object Read & Write. This is essential for the script to upload and display files.
    • Click Create Account API Token.
    • IMPORTANT: Cloudflare will now show you the Access Key ID and the Secret Access Key. Copy both values immediately and store them in a safe place. The Secret Access Key will not be shown again.
  5. Enter Details in the Admin Panel:

    Navigate to the storage settings in your sites's admin panel and fill in the following fields:

    • Access Key: The value you copied in Step 2.
    • Secret Key: The value you copied in Step 2.
    • Bucket Name: The name you chose in Step 1.
    • Endpoint URL: "S3 API" value in under the Settings tab. (e.g., https://da6682de5f0f118c4jfhgkhjfhdj.r2.cloudflarestorage.com/your-marketplace-files)
    • Public URL / Custom Domain: The custom domain you set up in Step 4 (e.g., https://storage.yourdomain.com/Bucket Name).



Backblaze B2

Backblaze B2 is a popular and reliable cloud object storage service, known for its simple interface and developer-friendly API.

Configuration Steps:

  1. Create a B2 Bucket:
    • Log in to your Backblaze account.
    • In the left sidebar, navigate to B2 Cloud Storage > Buckets.
    • Click Create a Bucket.
    • Give your bucket a unique name.
    • IMPORTANT: Set the bucket's privacy to Public. This is required for your website visitors to be able to see the images and files.
    • Leave other settings as default and click Create a Bucket.
  2. Create an Application Key:
    • In the left sidebar, navigate to Application Keys.
    • Click Add a New Application Key.
    • Give the key a descriptive name (e.g., Script Access Token).
    • Under "Allow access to Bucket(s)", select the specific bucket you created in Step 1.
    • For "Type of Access", select Read and Write.
    • Leave the other options blank and click Create New Key.
    • IMPORTANT: Backblaze will now show you the keyID and the applicationKey. Copy both values immediately and store them in a safe place. The applicationKey will not be shown again.
  3. Find Your Bucket Details (Endpoint & Public URL):
    • Go to B2 Cloud Storage > Buckets in your Backblaze dashboard.
    • Locate the bucket you created. In the list, you will see columns with important details.
    • You need two values from this table:
      • Endpoint: Shown in the Endpoint column (e.g., s3.us-west-004.backblazeb2.com). Use this in your configuration.
      • Public URL: Backblaze does not show the full public (Friendly) URL directly in the bucket list. To find it go to "Browse Files" from sidebar nav:
        • Upload a small test file to your bucket.
        • Click on the file name to open it. You will see a URL like: https://f003.backblazeb2.com/file/your_bucket/example.jpg
        • Remove the file name (example.jpg) from the URL. The remaining part is your bucket’s Public URL: https://f003.backblazeb2.com/file/your_bucket/
        • Note: The f003 part may be different for each account. Always use the one shown in your panel (this is your unique Friendly URL).
  4. Enter Details in the Admin Panel:

    Navigate to the storage settings in your site's admin panel and fill in the following fields:

    • Key ID (keyID): The value you copied in Step 2.
    • Application Key (applicationKey): The value you copied in Step 2.
    • Bucket Name: The name of your bucket from Step 1.
    • Endpoint URL: The URL from Step 3.
    • Public URL: The Friendly URL you found in Step 3.

AI Content Creator (OpenAI - ChatGPT)

OpenAI API

With the OpenAI API, you can generate text, create blog posts, product descriptions, or other types of content automatically using AI. This makes it easy to add smart content generation features to your site without building your own AI system.

Get an API Key

To call OpenAI from your website or plugin, you need a secret API key that authenticates your requests. Create one in the OpenAI dashboard and paste it into your integration.

  1. Visit the OpenAI Platform and sign in.
  2. Open API keys (or go to https://platform.openai.com/api-keys).
  3. Click Create new secret key.
  4. Give it a clear name (e.g., AI Content Creator) and confirm.
  5. Copy the key now (you’ll only see it once).
  6. In your admin panel, paste it into the API Key field, set status to Enable, and click Save Changes.

Progressive Web Apps (PWA)

A Progressive Web Application (PWA) is a type of application delivered through the web, built using common web technologies including HTML, CSS and JavaScript. It is intended to work on any platform that uses a standards-compliant browser. If you enable PWA support for your site, you can add your site to your home screen of your mobile device. You will see your application icon of your site on your mobile devices and it will work like a mobile application when you open it.

Enabling PWA for Your Site

  1. Make sure SSL is active on your site.
  2. Go to Preferences section from Admin panel and select "Enable" for "Progressive Web App (PWA)" option.
  3. Download "modesy-pwa.zip" file from this URL: https://codingest.com/download-modesy-pwa
  4. Open this .zip file and upload "manifest.json" and "pwa-sw.js" to root directory of your site.



  5. Open "manifest.json" file and edit this file for your site. Change the texts in this file (name, description, short_name) for your site and replace "https://domain.com" with your domain. Example: https://codingest.com
    Also, you can change "ltr" to "rtl" if your language is "right to left".

Adding Application Icon to the Home Screen of the Mobile Device

After enabling PWA, you will see an "+Add to Home Screen" option when you open your site with an Adroid device. If you open your site with iPhone (Safari), you can see this option in the options menu of the browser.



Genaral Settings

Genaral Settings

  • Application Name: The internal name of your site or application.
  • Site Title: The main title of your website, usually displayed in the browser tab and search engine results.
  • Home Title: The title specifically for your homepage. It can be different from the overall site title and is often displayed prominently on the homepage.
  • Site Description: A brief description of your site’s purpose or content. This is often used in meta descriptions for SEO.
  • Keywords: Important words or phrases related to your site content. These are used for search engine optimization.
  • Footer About Section: A short section describing your site or business. This text appears in the footer of your website, usually on all pages.
  • Copyright: The text shown in the copyright section of your site. You can update this to reflect your ownership or legal notice.

Contact Settings

  • Address: Your address
  • Email: Your email address
  • Phone: Your phone number
  • Contact Text: You can add some text about contact.

Social Media Settings

You can add your social links from this section.


Facebook Comments

If you want to use Facebook comment plugin you have to add your plugin code to this section.

How to Get This Code:
  1. Go to https://developers.facebook.com and click Add a new app.
  2. Click Settings and then click +Add platform.
  3. Select website and enter your site url and click save changes.
  4. Then go to https://developers.facebook.com/docs/plugins/comments/ URL. Enter your site URL to "URL to comment on" field. Enter 750 to "Width" field and click Get Code button.
  5. Then copy the code in the "Step 2" and paste to Facebook Comments field.


Custom Header Codes

You can add custom header codes from this section. These codes will be added in the <head> tags of your site.


Example:

<style>
body {
background-color: #00a65a;
}
</style>

Custom Footer Codes

You can add custom Footer codes from this section. These codes will be added to footer of your site.


Example:

<script>
alert('Hello!'); </script>

Cookies Warning

You can show a warning for using cookies from this section.


Bulk Upload Documentation

This documentation can be edited here or translated into a different language.


Cloudflare Turnstile Integration

Modesy uses Cloudflare Turnstile to protect your website from spam and abuse. Follow the steps below to enable and configure this feature:

  1. Go to https://dash.cloudflare.com/ and sign in to your account.
  2. From the left-hand menu, select Turnstile.
  3. Enter a widget name and click Add Hostnames. Add your website URL here.
    Example: yourdomain.com

    Then click Add to complete the process.
  4. Click Create to generate your Site Key and Secret Key. Copy these keys and paste them into the General Settings section of Modesy. Keep your keys safe, as they are required for the integration to work.

Maintenance Mode

If you want to prepere your site before going live or if you want to close your site to visitors, you can enable this mode. If you enable it, only Admin can access the site. Other visitors will see a "Coming Soon!" text.

Language Settings

You can manage your language settings from this section.

Default Language: You can change your site default language from this form.
Add Language: You can add a new language from this form.
Languages: You can see your languages on this table and you can update or delete a language. Also you can edit all translations in your language. To open translation page, click "Edit Translations" button.

Product Settings

Marketplace

  • SKU: You can enable / disable SKU number option for marketplace products with this option.
  • Product Options: You can enable / disable Product Options system for marketplace products with this option.
  • Shipping: You can enable / disable Shipping system for marketplace products with this option.
  • Location: You can enable / disable Location system for marketplace products with this option.

Classified Ads

  • Price: You can enable / disable price option for classified ads products with this option. If you do not want the product price to be optional, you must select "Required".
  • Location: You can enable / disable Location system for classified ads products with this option.
  • External Link: This option allows you to add an external link for your product. If you have the same product on another website, you can add your URL to this field.

Physical Products

  • Demo URL: You can enable / disable demo URL option for physical products with this option.
  • Video Preview: You can enable / disable video preview option for physical products with this option.
  • Audio Preview: You can enable / disable audio preview option for physical products with this option.

Digital Products

  • Demo URL: You can enable / disable demo URL option for digital products with this option.
  • Video Preview: You can enable / disable video preview option for digital products with this option.
  • Audio Preview: You can enable / disable audio preview option for digital products with this option.
  • External Download Link: If you want to allow vendors to add external download link for their digital products, you can enable this option.
  • Allowed File Extensions: With this option, you can define the file types you allow for digital products.

Payment Settings

To use any of the supported payment systems, you first need to create an account on the payment provider’s website and obtain your API credentials (typically a Public Key and a Secret Key). Once you have these credentials, you can configure them in the Payment Settings section of the Admin Panel for the corresponding payment method. If you wish to test your integration, you can enable Sandbox mode, which allows you to simulate transactions without processing real payments. After successful testing, you can switch to Production mode to start accepting live payments on your site.

To use Stripe, Razorpay, and YooMoney payment options, you need to configure a webhook in your payment provider’s dashboard. For Stripe, the system can function without a webhook, but it is strongly recommended to set one up to ensure reliable payment confirmation and synchronization.

Stripe

  • Log in to Stripe Dashboard:

    Go to Stripe Dashboard and log in to your account.

  • Navigate to Webhooks:

    From the left menu, go to Developers > Webhooks. Here you can view existing webhooks or create a new one. (If you can't find it, type "webhooks" in the search field.)

  • Click "Add endpoint":

    To add a new webhook, click the "Add endpoint" button.

  • Enter Endpoint URL: Provide the URL where Stripe will send event notifications:
    https://yourdomain.com/payment/webhook/stripe

  • Select Events:

    Choose the "checkout.session.completed" event which will trigger the webhook.

  • Save Webhook Secret:

    After creating the endpoint, Stripe provides a Signing Secret. This secret is used to verify that incoming webhook requests are genuinely from Stripe. Keep it safe.

Example:


Razorpay

  • In Razorpay Dashboard, navigate to the "Account & Settings" section. Then, go to the "Webhooks" tab and click the "Add New Webhook" button.
  • Webhook URL: https://yourdomain.com/payment/webhook/razorpay
  • Secret: You can generate a secret key and use it during the verification process.
  • Active Events: Select "payment.authorized" and "payment.captured" events.

    Example:
  • After completing these settings, go to the "API Keys" tab to obtain your API keys. Then, navigate to the "Payment Settings" section in the Admin panel and enter your API keys and the Webhook Secret you created to complete the setup.

YooMoney

YooMoney redirects the user back to your site after the payment flow for user experience. However, the final payment result is delivered asynchronously to your server via a notification (callback) request. You need to set your callback URL in order to receive payment notifications once a payment is completed.

  • Log in to your YooMoney account:

    Open your merchant settings in the YooMoney dashboard.

  • Set the notification (callback) URL:

    Specify the server endpoint that will receive asynchronous payment notifications from YooMoney:

    https://yourdomain.com/payment/webhook/yoomoney


Bank Transfer

If you want customers to send the order amount to your bank account, you can enable this option and enter your bank account details. This payment option requires you to manually check and approve payments.



Cash on Delivery

Cash on delivery (COD) is a method of collecting payment from customers when their orders arrive. So if you want the customer to pay at the time of receiving the order, you can enable this option. However, since this feature is also of interest to sellers, if the seller does not want to sell with this payment option, they can disable it for their products in the Vendor Dashboard section.

Modesy has a feature called "Commission Debt" to collect Cash on Delivery (COD) commissions. With this feature, COD commissions are deducted from the seller’s wallet balance. If the balance is insufficient, the commission is added as debt, which will be automatically deducted once the seller has enough wallet balance.
The "Commission Debt Limit" allows you to set a debt threshold; if a seller's debt exceeds this limit, the COD option is disabled for them. Once the seller repays the debt, the COD feature will automatically be reactivated.



Commission & Tax Settings

Commission: If you want to get a commission for every sale on the site, you can enable this option and set your commission rate.
VAT (Value-Added Tax): You can enable & disable VAT in your site with this option. If you enable this option, vendors can add VAT for their products.


Invoice

If you wish to add additional information to the generated invoices, you can do so here.



Global Taxes

Global Taxes allows you to add additional taxes on different or all countries for product sales on your site. With this option, you may receive additional taxes for sales to the country or countries you specify.



Featured (Promoted) Product Fees

In this section, you can set the daily and monthly pricing for promoted products. The "Free Promotion" option allows sellers to feature their products without any cost. If you want to charge sellers for promotions, simply set this option to "Disable".

Currency Settings

You can manage your currencies from this section.

Currency Settings

Default Currency: You can select your default currency from this field.
Allow All Currencies for Ordinary Listing: You can allow all currencies for ordinary listing (classified ads) products with this option.

Currency Converter

Status: You can enable or disable currency converter system with this option.
Automatically Update Exchange Rates: If you select "Yes" for this option, the system will update the currency exchange rates automatically every hour.
Currency Converter API: If you want to use currency converter system on your site, you need to get API keys from one of the following websites:

Fixer.io: https://fixer.io/

Currencyapi.net: https://currencyapi.net/

Openexchangerates.org: https://openexchangerates.org/

All these APIs have free plans. Create your account on one of these websites by selecting "FREE" plan and get your API key. After adding this API key from this section, the system will update currency rates automatically every hour.

Email Settings

Properly configuring your email settings is crucial for sending transactional emails such as user verifications, order notifications, and password resets. This guide will walk you through the available options and how to configure them to ensure reliable email delivery from your site.


Available Mail Services

The script provides several methods for sending emails to ensure reliability and flexibility. You can choose one of the following services from the admin panel:

  • PHP Mailer / CodeIgniter Mail: Ideal for a simple start. These options use a standard SMTP account, which is easy to set up with any email provider.
  • Amazon SES: Best for scalability. If you anticipate sending a very high volume of emails, SES offers a cost-effective and highly reliable infrastructure.
  • Mailgun API: A developer-focused service offering excellent deliverability, advanced analytics, and robust API features for transactional emails.
  • Brevo (formerly Sendinblue) API: A great all-in-one solution that combines transactional emails with marketing tools, perfect for businesses that want to manage everything from one platform.

1. Standard SMTP Configuration (PHP Mailer & CodeIgniter Mail)

This is the most common and straightforward method. It uses your own email service to send emails via the Simple Mail Transfer Protocol (SMTP). While easy to set up, deliverability can sometimes be an issue on shared hosting environments. For critical applications, using a dedicated email service (like SES, Mailgun, or Brevo) is recommended.

  • Mail Protocol: The recommended setting is SMTP for better control and deliverability. However, some hosting environments may require you to use the Mail protocol, which utilizes the server's internal PHP mail function.
  • Encryption: TLS is the modern security standard for encrypting email communications. Use SSL only if specifically required by your email provider.
  • Mail Host: The address of your email provider's server (e.g., smtp.yourdomain.com).
  • Mail Port: The port used for outgoing mail. This is typically 587 for TLS and 465 for SSL.
  • Mail Username: Your full email address (e.g., email@yourdomain.com).
  • Mail Password: The password for that email account.
  • Mail Title: The name that recipients will see as the sender (e.g., Your Marketplace Name).
  • Reply-To: The email address where you want to receive replies from users.

2. Amazon SES Configuration

Amazon Simple Email Service (SES) is a cloud-based email sending service designed for scalability and cost-effectiveness. It's an excellent choice for applications that need to send thousands or millions of emails.

If you want to use this service, follow these steps to make your email settings:

  • Go to https://aws.amazon.com/ses/ and create your account.

  • Click AWS Management Console




  • Click the "Simple Email Service" link under the Services menu




  • Click the "SMTP Settings" link from left menu.




  • Click the "Create My SMTP Credentials" button.




  • Click the "Create" button.




  • Your credentials will be created after these steps.



  • After creating your credentials, you can add these credentials from Email Settings in the Admin panel.

    Example:
    Mail Protocol: SMTP
    Mail Library: Swift Mailer or PHP Mailer
    Encryption: TLS
    Mail Host: email-smtp.us-east-1.amazonaws.com
    Mail Port: 587
    Mail Username: AKIAVIAANDJBBXXXXXXX
    Mail Password: BPj7ailKjbITgyGF6brROnVIflfdfdydbdklsdsds
    Reply-To: noreply@domain.com



3. Mailgun API Configuration

Mailgun is a powerful API-based service that provides excellent deliverability, tracking, and analytics. Using its API is generally more reliable than using SMTP.

  1. Create an account at mailgun.com.
  2. Add and Verify Your Domain:
    • In the Mailgun dashboard, go to Sending > Domains and click Add New Domain.
    • It is highly recommended to use a subdomain for sending emails (e.g., mg.yourdomain.com). This protects your main domain's reputation.
    • Mailgun will provide you with several DNS records (TXT, MX, and CNAME). You must add these to your domain's DNS settings to verify ownership and authorize Mailgun to send emails on your behalf. This is a critical step for email deliverability.
      For more information, please read Mailgun documentation: Domain Verification Setup Guide
  3. Get Your API Credentials:
    • In the dashboard, navigate to Settings > Sending keys.
    • Here click on the "Add sending key" button and create your API key.
  4. Enter Details in the Admin Panel:
    • Select Mailgun as the Mail Service.
    • Enter your your Sending API key.
    • Select the same region you chose when adding your domain.
    • Enter your verified Mailgun Domain (e.g., mg.yourdomain.com).
    • Enter your sender email address in both Sender Email Address and Reply-To fields. For best results, use an address based on the subdomain you added, e.g., info@mg.yourdomain.com.

4. Brevo (Sendinblue) API Configuration

Brevo offers a reliable transactional email API as part of its larger suite of marketing tools.

  1. Create an account at brevo.com.
  2. Get Your API Key:
    • In your Brevo dashboard, click on your profile name at the top-right and navigate to SMTP & API.
    • Select the API Keys tab.
    • Click Generate a new API key, give it a descriptive name, and copy the generated key. Store it safely.
  3. Verify Your Domain/Sender:
    • Before sending emails, you must verify your sending domain or a specific sender email address. Go to Senders & IP from your dashboard settings and follow the verification steps provided by Brevo.
  4. Enter Details in the Admin Panel:
    • Select Brevo as the Mail Service.
    • Enter the API Key you generated.

IMPORTANT: The email address you use in the Reply-To field in the admin panel must be a verified sender within your Brevo account. If the sender is not authorized, Brevo will not send the emails.






Email Verification: You can enable or disable email verification from this section.

Contact Messages : If you want to send contact messages to your email address, you can select "Yes" for "Send Contact Messages to Email Address" option by adding your email address.

Social Login Settings

You can make your social login settings from this section.

Facebook Login

  1. Go to https://developers.facebook.com/apps/ URL.
  2. Click "Create App" option.
  3. Enter "App name" and "App contact email". Click Next button.



  4. Select "Authenticate and request data from users with Facebook Login". Click Next button.



  5. Select "I don’t want to connect a business portfolio yet.". Click Next button.



  6. Click "Go to dashboard". Click Next button.



  7. In the dashboard, click on the "Customize adding a Facebook Login button" option.



  8. Click "Add" button for email permission.



  9. Click the "Settings" option. Enter "Valid OAuth Redirect URIs" : "https://your domain.com/facebook-callback" and click "Save Changes" button.



  10. Go to Dashboard and Click the "App Settings > Basic" link from sidebar.
    Enter your domain to "App Domains" field.
    Enter your Terms & Conditions page link to the "User Data Deletion" and "Privacy Policy URL" fields.
    Select a category and a app icon for your application and click "Save Changes" button.

    **Copy "App ID" and "App Secret" values from this page and enter these values from "Social Login Settings" section in the Admin panel.



  11. Click "Publish" from sidebar and click "Publish" button.



  12. *If you see an error about "Business verification", you can verify your business or contact Facebook support.

Google Login

  1. Go to the https://console.cloud.google.com/apis/credentials URL.
  2. Click the "Create Project" button.



  3. Enter your project name and click "Create" button.



  4. Click the "+ Create credentials" option.



  5. Select the "OAuth client ID" option.



  6. Click the "Configure Consent Screen" button.



  7. Select the "External" option and click the "Create" button.



  8. Fill the form and click the "Save and Continue" button.



  9. Click the "Add or Remove Scopes" button and select the first 2 options. Click the "Update" button. Then click the "Save and Continue" button.



  10. Click the "Save and Continue" button.



  11. Click the "Back to Dashboard" button on the next page and then click the "Publish App" button.



  12. Click the "Credentials" link from the sidebar menu. Click the "+ Create credentials" option and select the "OAuth client ID" option.

  13. Select the "Web Application" option, enter your App name and enter your Google redirect URL to the "Authorized redirect URIs" field.
    Google redirect URL: https://domain.com/connect-with-google  (Change "domain.com" with your domain name.)
    Click the "Create" button.



  14. Copy "Client ID" and "Client Secret" values and enter these values from "Social Login"section in the Admin panel.

VK Login

  1. Go to https://vk.com/dev URL.
  2. Click "My Apps" link.



  3. Click "Create Application" button.



  4. Select "Website" option and enter your domain to "Website address" and "Base domain" fields. Click "Connect Site" button.



  5. Enter redirect URL to "Authorized redirect URI" field: "https://domain.com/connect-with-vk"
    Copy "App ID" and "Secure Key" values and enter these values from "Social Login Configuration" section.

Visual Settings

Visual Settings

You can make your visual settings from this section. You can change your site color, logo and favicon from this section.

Watermark: If you want to add watermarks to your images, you can enable it with this option.

Font Settings

You can change your site font from this section.
Add Font

If you want to add new fonts to your site, you can add them from this section. Follow these steps to add a new font:

  1. Go to Google Fonts: https://fonts.google.com
  2. Click the red plus icon for the font that you want to add.
  3. You will see "Family Selected" box at the right bottom of the page. Click on this box.
  4. Copy the font URL and enter it to "URL" field.
    E.g: <link href="https://fonts.googleapis.com/css?family=Open+Sans&display=swap" rel="stylesheet">
  5. Copy the CSS rule and enter it to "Font Family" field.
    E.g: font-family: 'Open Sans', sans-serif;

Route Settings

You can change static routes in your site from this section.

Shipping System

Modesy has an advanced and flexible shipping system that allows each seller to manage their own shipping options. Vendors can manage their shipping operations from the "Shipping Settings" section in the "Vendor Dashboard".

If vendors sell physical products, they are required to add shipping options that cover the locations they wish to ship to. Otherwise, buyers will see a "No delivery is made to the address you have chosen" warning in the cart.

Product Weight and Dimensions

Our shipping system can dynamically calculate fees based on the weight and dimensions of the products. Therefore, it is crucial to add this information to your products for accurate shipping pricing.

When adding or editing a product, you must enter the product's Physical Weight (kg) and Dimensions (Length, Width, Height - cm) in the "Shipping" section.

How is the Shipping Cost Calculated?

The system determines the shipping cost for a product based on its "Chargeable Weight". This value is determined by comparing the product's Physical Weight with its Volumetric Weight (Dimensional Weight), and the higher value is used.

  • Volumetric Weight (Dimensional Weight): Calculated using the formula (Length x Width x Height) / 5000. This is the international shipping standard.

The chargeable weights of all products from a single seller in the customer's cart are summed up, and the final shipping cost is determined based on this total weight if the weight-based calculation is selected.

Shipping Options

To add shipping options, you need to go to the "Shipping Settings" section and click the "Add Shipping Zone" button.

Zone Name: This is the name of the shipping zone you will add. Example: Domestic, Europe, North America, etc.

Regions: These are the continents, countries, or states where your shipping options will be active. From here, you must select the locations you want to ship to.

Shipping Methods

You can offer 3 different shipping methods for each shipping zone:

1. Flat Rate Shipping

This is a flexible method that allows you to set a fixed shipping cost. You can choose one of three ways to calculate this cost:

Shipping Calculation Type

In the "Flat Rate" settings, you will see a dropdown menu to select how the cost is calculated:

  • Calculate by Total Weight: This option allows you to define shipping costs that vary according to the total weight of the cart. You can set different prices for different weight ranges.
  • Fixed Price Per Order: This option applies a single, fixed shipping cost to the entire order, regardless of the number of items or their total weight.
  • Fixed Price Per Item: This option applies a fixed shipping cost for each item in the cart. The total shipping cost is calculated by multiplying the number of items by the specified cost.

2. Local Pickup

A method that allows customers to pick up their orders themselves directly. You can also add a cost for this option (e.g., a handling fee).

3. Free Shipping

Allows you to offer free shipping for orders that exceed a certain cart total.

Estimated Delivery Times

If you want to provide your customers with information about the estimated shipping time for your products, you can add it from the "Shipping Delivery Times" section. You can select one of these options when adding or editing your products.

  • Example: Ready to ship in 1 Business Day

Product Options & Variants

Modesy has a powerful product options system allows you to create a rich and flexible shopping experience for your customers. You can add various options like color, size, or material, and the system will automatically generate all possible product combinations, known as "variants".

This system is managed from the "Product Options" section when adding or editing a product. Instead of a multi-step process, you can now manage all options and their resulting variants from a single, intuitive interface.

Adding an Option

To begin, simply click the "Add Product Option" button. This will create a new option block where you can define its name and behavior.

  • Option Name: This is the label your customers will see, such as "Color" or "Size". You can provide names in multiple languages using the translation button .
  • Option Type: This crucial setting determines how the option is displayed and whether it creates unique product variants.

Understanding Option Types

There are two main categories of option types:

1. Types that Generate Variants

These options are used to create distinct, selectable versions of your product (e.g., a red, small t-shirt). Each combination will have its own SKU, price, and stock level in the variants table below.

  • Dropdown: A standard select box. Best for a long list of options like countries or sizes.
  • Radio Buttons: Displays all values as clickable buttons. Ideal for a few, clearly visible choices.
  • Swatch - Color: Displays values as clickable color swatches.
  • Swatch - Image: Displays values as small, clickable image swatches.

2. Types for Extra Customization (Do Not Generate Variants)

These options are designed for product personalization and add-ons. Unlike the previous types, they do not create separate product variants in the variants table. This means they do not have their own unique SKU, price, or stock level. Instead, they function as extra choices or customizations that a customer can add to a selected variant (like a red, small t-shirt).

  • Checkbox: This type is perfect for offering optional add-ons. You can add multiple values to a checkbox option, and customers can select one or more of them. For example, you could offer "Gift Wrapping" and "Extended Warranty" as two separate checkbox values for a product.
  • Text Input: This provides a text field on the product page, allowing customers to submit custom text with their order. It's ideal for personalized products like mugs with a custom name, t-shirts with a slogan, or jewelry with an engraving.
  • Number Input: Similar to the text input, this option adds a field where customers can enter only numeric values. This is useful for products that require custom dimensions, such as ordering a poster by a specific length or a cable by a certain meter.

Adding Values to an Option

Once you've created an option (e.g., "Color"), you need to add values to it by clicking the "Add Value" button within that option's block. Values are the specific choices a customer can make (e.g., Red, Green, Blue).

  • Value Name: The name of the choice (e.g., "Red"). This can also be translated.
  • Color / Image Swatch: If you selected a swatch option type, you can pick a color or upload an image for that specific value.
  • Associated Images: You can link one or more main product images to a specific value. For example, you can associate all images of the red t-shirt with the "Red" value. When a customer selects "Red", the product gallery will update to show only those images.

Automatic Variant Generation & Management

This is the core of the system. As you add options and values that generate variants, the system will automatically create every possible combination in the "Variants" table at the bottom of the page.

For example, if you have a "Color" option with 2 values and a "Size" option with 3 values, the system will generate 2 x 3 = 6 unique variants in the table.

For each variant row in the table, you can and must manage its unique properties:

  • SKU: A unique stock-keeping unit for that specific variant.
  • Price: The price for this variant. You can leave it empty to use the product's default price.
  • Discounted Price: An optional sale price for the variant.
  • Quantity: The exact stock level for this specific variant.
  • Weight: The weight in kg for this variant, used for shipping calculations.
  • Default: One variant must be marked as the default. This variant's price and image will be shown when a customer first visits the product page.
  • Status: You can activate or deactivate specific variants. An inactive variant will not be available for purchase.

Cron Job

A cron job is a Linux command for scheduling a task to be executed sometime in the future. You can set a cron job to update your sitemap, scheduled posts or RSS feeds periodically.

Follow these steps to set up cron job:

  1. Go to your cPanel and click cron jobs.



  2. Select the time interval that the cron job will run and your command and create the cron job.



    Commands

    Update Sitemap:
    wget -O /dev/null http://domain.com/cron/update-sitemap

    You need to paste these commads to "Command" field and you need to create a different cron job for each task.
    **Do not forget to change "domain.com" with your domain name.

Password Reset

To use the Password Reset section, you need to make your Email Settings. The system will send a password reset link, so it is necessary to enter a working email server credentials to use email system. You can read more about email settings from here.

If you have not set up your email settings yet and have forgotten your password, you can reset your password from your database.
To do this, open your database via phpMyAdmin. Click on the users table and find your account in this table. Paste the following code to your password column. Make sure there is no space at the beginning or the ending of the code.

$2a$08$drmgGpMVGzdyiv7q5LUt3eUne8xh05XKrJPgMKaR3RgRwCQKXZpdu
After adding this code to your password column, you can login with "1234" password.

Editing Script Codes

Editing codes is not included in item support. If you want to edit the script codes, you need to edit the codes by yourself or you need to ask help from a PHP developer.

Editing HTML Codes

If you want to edit the HTML codes, you can edit the files in the "app/Views" folder.

Header: You can edit header of the site in the "app/Views/partials/_header.php" file. <head></head> tags are located in this file. If you want to add something between these tags, you need to edit this file.

Index: You can edit homepage of the site in the "app/Views/index.php" file.

Footer: You can edit footer of the site in the "app/Views/partials/_footer.php" file.

Editing CSS Codes

If you want to edit the CSS codes, you can edit "assets/css/style.min.css" file. If you are using the Chrome browser, you need to reset the browser cache to see the changes.



Update Guide

You can find all instructions to update your site in this section. If you don't know your current version, you can check it from the "version.txt" file in the main directory of your site files.

Update from v2.6.2 to v2.6.3

  1. Open your FTP (usually the public_html folder on your server) and go to the directory where your website files are located.
  2. Replace these files with the files in the new version:

    app/Common.php
    app/Config/Constants.php

    app/Controllers/AdminController.php
    app/Controllers/AjaxController.php
    app/Controllers/CartController.php
    app/Controllers/DashboardController.php
    app/Controllers/HomeController.php

    app/Models/CartModel.php
    app/Models/OrderModel.php
    app/Models/ProductOptionsModel.php
    app/Models/ProductModel.php

    app/Views/cart/_order_summary.php
    app/Views/partials/_header.php
    app/Views/partials/_footer.php
    app/Views/product/details/product.php
    app/Views/product/details/_preview.php
    app/Views/product/_product_item.php
    app/Views/dashboard/includes/_header.php
    app/Views/dashboard/product/_section_price_stock.php
    app/Views/admin/newsletter/newsletter.php
    app/Views/admin/includes/_header.php

**There is no change in the database, so if you replace/upload these files from the new version, the update will be completed.

Update from v2.6.1 to v2.6.3

  1. Open your FTP (usually the public_html folder on your server) and go to the directory where your website files are located.
  2. Replace these files with the files in the new version:

    app/Common.php
    app/Config/Routes.php
    app/Libraries/Storage.php
    app/Config/Constants.php

    app/Controllers/AdminController.php
    app/Controllers/AjaxController.php
    app/Controllers/CartController.php
    app/Controllers/DashboardController.php
    app/Controllers/HomeController.php
    app/Controllers/SupportController.php

    app/Models/CategoryModel.php
    app/Models/CartModel.php
    app/Models/ChatModel.php
    app/Models/CommonModel.php
    app/Models/OrderModel.php
    app/Models/FileModel.php
    app/Models/ProductModel.php
    app/Models/ProductOptionsModel.php

    app/Views/partials/_fonts.php
    app/Views/partials/_header.php
    app/Views/partials/_footer.php
    app/Views/partials/_css_js_header.php
    app/Views/cart/shipping_information.php
    app/Views/cart/_cart_location.php
    app/Views/cart/_order_summary.php
    app/Views/nav/_nav_main.php
    app/Views/nav/_nav_main_large.php
    app/Views/profile/reviews.php
    app/Views/profile/_tabs.php
    app/Views/product/_product_item.php
    app/Views/product/_price_product_item.php
    app/Views/product/details/_product_details.php
    app/Views/product/details/product.php
    app/Views/product/details/_preview.php
    app/Views/admin/includes/_header.php
    app/Views/admin/support/ticket.php
    app/Views/admin/newsletter/newsletter.php
    app/Views/admin/font/edit.php
    app/Views/dashboard/product/_section_details.php
    app/Views/dashboard/product/product-options/_section_product_options.php
    app/Views/dashboard/includes/_header.php
    app/Views/dashboard/product/_section_price_stock.php
    app/Views/dashboard/shipping/_shipping_methods.php

    assets/admin/js/product-options.js
  3. Upload these new files/folders from the new version:

    app/Controllers/ServiceController.php
    assets/js/script-2.6.2.js
    assets/js/script-2.6.2.min.js
  4. Delete "app/Views/chat" folder and upload it from the new version.
  5. Clear your browser cache. This is important. If you do not clear, your browser may continue to run old codes.
**There is no change in the database, so if you replace/upload these files from the new version, the update will be completed.

Update from v2.6.0 to v2.6.3

  1. Open your FTP (usually the public_html folder on your server) and go to the directory where your website files are located.
  2. Replace these files with the files in the new version:

    app/Common.php
    app/Config/Constants.php
    app/Config/Defaults.php
    app/Config/Filters.php
    app/Config/PaymentGateways.php
    app/Config/Routes.php
    app/Libraries/Storage.php
    app/Helpers/product_helper.php

    app/Controllers/AdminController.php
    app/Controllers/AjaxController.php
    app/Controllers/BaseController.php
    app/Controllers/BaseAdminController.php
    app/Controllers/BulkController.php
    app/Controllers/CartController.php
    app/Controllers/CheckoutController.php
    app/Controllers/HomeController.php
    app/Controllers/SupportController.php
    app/Controllers/OrderAdminController.php
    app/Controllers/DashboardController.php

    app/Models/CategoryModel.php
    app/Models/CartModel.php
    app/Models/ChatModel.php
    app/Models/CheckoutModel.php
    app/Models/CommonModel.php
    app/Models/FileModel.php
    app/Models/ProductAdminModel.php
    app/Models/ProductModel.php
    app/Models/SettingsModel.php
    app/Models/OrderModel.php
    app/Models/ProductOptionsModel.php

    app/Views/admin/seo_tools.php
    app/Views/admin/settings/payment_settings.php
    app/Views/admin/support/ticket.php
    app/Views/admin/newsletter/newsletter.php
    app/Views/admin/font/edit.php
    app/Views/admin/includes/_header.php

    app/Views/cart/cart.php
    app/Views/cart/payment_method.php
    app/Views/cart/_cart_location.php
    app/Views/cart/_shipping_methods.php
    app/Views/cart/shipping_information.php
    app/Views/cart/_payment_js.php
    app/Views/cart/_order_summary.php

    app/Views/product/_product_list.php
    app/Views/product/_price_product_item.php
    app/Views/product/_product_item.php
    app/Views/product/details/_product_details.php
    app/Views/product/details/product.php
    app/Views/product/details/_preview.php

    app/Views/nav/_nav_main.php
    app/Views/nav/_nav_main_large.php

    app/Views/profile/reviews.php
    app/Views/profile/_tabs.php

    app/Views/partials/_fonts.php
    app/Views/partials/_footer.php
    app/Views/partials/_css_js_header.php
    app/Views/partials/_header.php

    app/Views/dashboard/product/_section_details.php
    app/Views/dashboard/product/product-options/_section_product_options.php
    app/Views/dashboard/shipping/_shipping_methods.php
    app/Views/dashboard/product/_section_price_stock.php
    app/Views/dashboard/includes/_header.php

    assets/js/payment.js
    assets/admin/js/product-options.js
    assets/file/csv_product_template.csv
    assets/file/csv_product_example.csv
  3. Upload these new files/folders from the new version:

    app/ThirdParty/mercadopago (folder)
    app/Libraries/MercadoPago.php
    app/Views/cart/payment_methods/_mercado_pago.php
    assets/img/payment/mercado_pago.svg
    app/Controllers/ServiceController.php
    assets/js/script-2.6.2.js
    assets/js/script-2.6.2.min.js
  4. Delete "app/Views/chat" folder and upload it from the new version.
  5. Clear your browser cache. This is important. If you do not clear, your browser may continue to run old codes.
**There is no change in the database, so if you replace/upload these files from the new version, the update will be completed.






Update from v2.5.x to v2.6.3


  1. Follow all steps in the Updating FTP Files (Click Here) section.
  2. Follow all steps in the Updating Database (Click Here) section. You can find update_database.php file in the "documentation/updates/Update from v2.5.x to v2.6.3" folder.
  3. Clear your browser cache. This is important. If you do not clear, your browser may continue to run old codes.

Update from v2.4.x to v2.6.3


  1. Follow all steps in the Updating FTP Files (Click Here) section.
  2. Follow all steps in the Updating Database (Click Here) section. You can find update_database.php file in the "documentation/updates/Update from v2.4.x to v2.6.3" folder.
  3. Clear your browser cache. This is important. If you do not clear, your browser may continue to run old codes.

Update from v2.3.x to v2.6.3


  1. Follow all steps in the Updating FTP Files (Click Here) section.
  2. Follow all steps in the Updating Database (Click Here) section. You can find update_database.php file in the "documentation/updates/Update from v2.3.x to v2.6.3" folder.
  3. Clear your browser cache. This is important. If you do not clear, your browser may continue to run old codes.

Updating FTP Files

  1. Open your cPanel and go to File Manager section.



  2. Go to main directory of your site.



  3. Create a new folder named "old". You can use another name. It won't make any differences.



  4. Move all of your files to this folder.



  5. Upload "codecanyon-modesy-buy-sell-used-stuff.zip" file to this directory.



  6. Rigth click the .zip file and select "Extract" option.





  7. Move all files that in the "modesy-v.." folder to main directory.



  8. Delete unnecessary files/folders: "documentation", "uploads", "modesy-v..", "install" and "codecanyon-modesy-buy-sell-used-stuff.zip".



  9. Copy old/uploads folder to main directory.



  10. Open app/Config/Database.php file and enter your database credentials.



  11. Open ".env" file that on the main directory of the script files and add your license and your site URL.

    #--------------------------------------------------------------------
    # APP
    #--------------------------------------------------------------------
    app.baseURL = https://yourdomain.com/

    #--------------------------------------------------------------------
    # LICENSE
    #--------------------------------------------------------------------
    PURCHASE_CODE = your purchase code
    LICENSE_KEY = your license key

Updating Database

  1. Upload update_database.php file to your main directory. You can find this file in the "documentation/updates" folder.



  2. Open your browser and enter this URL: yourdomain.com/update_database.php
    Example:



  3. When you go to this URL, you will see the update wizard. Enter your database credentials and click on the Update My Database button and complete the update.



  4. Delete the "update_database.php" file.