{
    "version": "https://jsonfeed.org/version/1",
    "title": "Madabina Blog",
    "home_page_url": "https://blog.madabina.com/articles",
    "description": "Ideas for sellers and developers building commerce with Madabina.",
    "items": [
        {
            "id": "https://blog.madabina.com/articles/developers/mcp-client",
            "content_html": "<p>Madabina provides an MCP server for compatible clients to interact with a merchant’s authorized store data. A connection uses Streamable HTTP and OAuth, so the client must support the authorization flow and protected-resource discovery.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"use-the-published-endpoint-and-oauth-flow\">Use the published endpoint and OAuth flow<a href=\"https://blog.madabina.com/articles/developers/mcp-client#use-the-published-endpoint-and-oauth-flow\" class=\"hash-link\" aria-label=\"Direct link to Use the published endpoint and OAuth flow\" title=\"Direct link to Use the published endpoint and OAuth flow\" translate=\"no\">​</a></h2>\n<p>The MCP endpoint is <code>https://mcp.madabina.com/mcp</code>. The server publishes protected-resource metadata at <code>https://mcp.madabina.com/.well-known/oauth-protected-resource</code>, and the authorization server is <code>https://madabina.com</code>.</p>\n<p>Configure a client that supports Streamable HTTP and OAuth discovery. The merchant completes authorization through the client flow. Do not paste a merchant token into shared configuration or treat an endpoint URL by itself as authorization.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"request-only-the-access-your-integration-needs\">Request only the access your integration needs<a href=\"https://blog.madabina.com/articles/developers/mcp-client#request-only-the-access-your-integration-needs\" class=\"hash-link\" aria-label=\"Direct link to Request only the access your integration needs\" title=\"Direct link to Request only the access your integration needs\" translate=\"no\">​</a></h2>\n<p>Madabina’s documented scopes separate read access, product writes, order writes, and destructive actions. Select only the scopes needed for the feature. Product deletion and order cancellation require the destructive scope, so a read-only integration should not request it.</p>\n<p>Access remains tied to the authorized merchant account and selected store. Keep the store context visible in your integration and avoid assuming that a merchant has only one store.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"handle-write-operations-carefully\">Handle write operations carefully<a href=\"https://blog.madabina.com/articles/developers/mcp-client#handle-write-operations-carefully\" class=\"hash-link\" aria-label=\"Direct link to Handle write operations carefully\" title=\"Direct link to Handle write operations carefully\" translate=\"no\">​</a></h2>\n<p>MCP write operations require a UUID idempotency key. If a mutation times out, do not retry it with a new key automatically: follow the server’s current guidance and reuse the same key when retrying the same operation. This helps avoid accidentally applying a repeated action.</p>\n<p>Keep tokens out of logs and source control. If authorization fails, use the client’s OAuth discovery flow and the official documentation to diagnose the connection instead of embedding credentials manually.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"read-the-current-tool-and-scope-list\">Read the current tool and scope list<a href=\"https://blog.madabina.com/articles/developers/mcp-client#read-the-current-tool-and-scope-list\" class=\"hash-link\" aria-label=\"Direct link to Read the current tool and scope list\" title=\"Direct link to Read the current tool and scope list\" translate=\"no\">​</a></h2>\n<p>The available tools and permissions can evolve. Before shipping an integration, review the <a href=\"https://docs.madabina.com/docs/developers/mcp-server\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Madabina MCP server guide</a> for the current endpoint metadata, scope descriptions, and mutation behavior.</p>",
            "url": "https://blog.madabina.com/articles/developers/mcp-client",
            "title": "Connect an MCP Client to Madabina: OAuth and Permission Scopes",
            "summary": "Learn the verified connection details, OAuth requirement, and permission model for Madabina’s MCP server.",
            "date_modified": "2026-10-15T00:00:00.000Z",
            "author": {
                "name": "Madabina Editorial Team",
                "url": "https://madabina.com"
            },
            "tags": [
                "For developers"
            ]
        },
        {
            "id": "https://blog.madabina.com/articles/sellers/product-page-checklist",
            "content_html": "<p>A product page should help a customer understand what is being offered before ordering. Clear product information also makes a store easier to maintain: the merchant can review the same key details whenever an item changes.</p>\n<p>Use this checklist when adding or updating a product in your Madabina store.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"write-a-specific-product-name\">Write a specific product name<a href=\"https://blog.madabina.com/articles/sellers/product-page-checklist#write-a-specific-product-name\" class=\"hash-link\" aria-label=\"Direct link to Write a specific product name\" title=\"Direct link to Write a specific product name\" translate=\"no\">​</a></h2>\n<p>Name the item in the words customers are likely to recognize. Include a useful model, material, or size when it distinguishes the product. Avoid filling the name with repeated search phrases; put extra detail in the description instead.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"add-images-that-show-the-item\">Add images that show the item<a href=\"https://blog.madabina.com/articles/sellers/product-page-checklist#add-images-that-show-the-item\" class=\"hash-link\" aria-label=\"Direct link to Add images that show the item\" title=\"Direct link to Add images that show the item\" translate=\"no\">​</a></h2>\n<p>Choose clear images that match the actual product and show the details a customer needs to assess it. Keep image backgrounds and framing consistent across similar items. If a color or variant differs, use imagery that makes that difference visible.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"explain-the-important-details\">Explain the important details<a href=\"https://blog.madabina.com/articles/sellers/product-page-checklist#explain-the-important-details\" class=\"hash-link\" aria-label=\"Direct link to Explain the important details\" title=\"Direct link to Explain the important details\" translate=\"no\">​</a></h2>\n<p>Describe the product in plain language. Include the material, dimensions, compatibility, care instructions, or other facts that matter for that item. Separate confirmed product details from estimates or recommendations, and remove information that no longer applies.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"check-the-price-and-availability\">Check the price and availability<a href=\"https://blog.madabina.com/articles/sellers/product-page-checklist#check-the-price-and-availability\" class=\"hash-link\" aria-label=\"Direct link to Check the price and availability\" title=\"Direct link to Check the price and availability\" translate=\"no\">​</a></h2>\n<p>Review the displayed price and the available stock before making the product visible. If the item has variants, check the price, stock, and visibility for each relevant option. Update the listing when the product is temporarily unavailable or its details change.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"review-language-and-category-choices\">Review language and category choices<a href=\"https://blog.madabina.com/articles/sellers/product-page-checklist#review-language-and-category-choices\" class=\"hash-link\" aria-label=\"Direct link to Review language and category choices\" title=\"Direct link to Review language and category choices\" translate=\"no\">​</a></h2>\n<p>Madabina supports product text in French, English, and Arabic. Add the versions you want customers to see and review them in the public store. Choose the category that best describes the item so customers can browse related products.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"preview-the-public-page\">Preview the public page<a href=\"https://blog.madabina.com/articles/sellers/product-page-checklist#preview-the-public-page\" class=\"hash-link\" aria-label=\"Direct link to Preview the public page\" title=\"Direct link to Preview the public page\" translate=\"no\">​</a></h2>\n<p>Open the listing as a customer would. Confirm that the name, images, description, price, and availability are easy to find on a phone. Check the order form and make sure the information presented matches the product you intend to sell.</p>\n<p>For the exact merchant workflow, see the <a href=\"https://docs.madabina.com/docs/merchants/product-inventory-management\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Madabina product and stock guide</a>. When you are ready, <a href=\"https://madabina.com/merchant/register\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">create your Madabina store</a>.</p>",
            "url": "https://blog.madabina.com/articles/sellers/product-page-checklist",
            "title": "Online Store Product Page Checklist: Names, Images, Price, and Stock",
            "summary": "Use this practical checklist to make product information clear and consistent in your online store.",
            "date_modified": "2026-10-15T00:00:00.000Z",
            "author": {
                "name": "Madabina Editorial Team",
                "url": "https://madabina.com"
            },
            "tags": [
                "For sellers"
            ]
        },
        {
            "id": "https://blog.madabina.com/articles/developers/rest-api-integration",
            "content_html": "<p>Madabina’s versioned REST API lets an authenticated merchant integration work with store resources such as products and orders. Start with the published API contract before writing requests: it defines the current fields, responses, and validation rules.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"start-with-the-api-contract\">Start with the API contract<a href=\"https://blog.madabina.com/articles/developers/rest-api-integration#start-with-the-api-contract\" class=\"hash-link\" aria-label=\"Direct link to Start with the API contract\" title=\"Direct link to Start with the API contract\" translate=\"no\">​</a></h2>\n<p>The production API base URL is <code>https://madabina.com/api/v1</code>. The <a href=\"https://madabina.com/api/docs\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">interactive API reference</a> and <a href=\"https://madabina.com/api/openapi.json\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">OpenAPI document</a> are the source of truth for available routes and request schemas.</p>\n<p>The API documentation describes merchant authentication and the resources available to an authenticated account. Private routes require a valid Bearer token, and resources are scoped to stores the authenticated merchant is allowed to manage.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"keep-credentials-out-of-client-code\">Keep credentials out of client code<a href=\"https://blog.madabina.com/articles/developers/rest-api-integration#keep-credentials-out-of-client-code\" class=\"hash-link\" aria-label=\"Direct link to Keep credentials out of client code\" title=\"Direct link to Keep credentials out of client code\" translate=\"no\">​</a></h2>\n<p>Use the documented authentication flow to obtain a token. Send access tokens in the <code>Authorization: Bearer …</code> header over HTTPS. Keep credentials and tokens in an appropriate secret store on the server side; do not commit them to source control, expose them in a browser bundle, or write them to logs.</p>\n<p>Before implementing token refresh, logout, or a mutation, follow the current API reference for its exact fields and behavior. These details are part of the API contract and can change as the service evolves.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"build-a-small-safe-first-request\">Build a small, safe first request<a href=\"https://blog.madabina.com/articles/developers/rest-api-integration#build-a-small-safe-first-request\" class=\"hash-link\" aria-label=\"Direct link to Build a small, safe first request\" title=\"Direct link to Build a small, safe first request\" translate=\"no\">​</a></h2>\n<p>Choose one read operation from the API reference and implement it with a test merchant account. Parse the documented success and error responses, handle expired or invalid credentials, and avoid assuming that every response has the same shape. Add write operations only after confirming their validation requirements and side effects.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"check-store-boundaries-and-side-effects\">Check store boundaries and side effects<a href=\"https://blog.madabina.com/articles/developers/rest-api-integration#check-store-boundaries-and-side-effects\" class=\"hash-link\" aria-label=\"Direct link to Check store boundaries and side effects\" title=\"Direct link to Check store boundaries and side effects\" translate=\"no\">​</a></h2>\n<p>Design your integration around the merchant and store context returned by the API. Before automating a status change, cancellation, or stock update, review the operation’s documented effects. For example, the current merchant guide notes that cancelling an order can restore stock when applicable and does not hard-delete its record.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"continue-with-the-official-references\">Continue with the official references<a href=\"https://blog.madabina.com/articles/developers/rest-api-integration#continue-with-the-official-references\" class=\"hash-link\" aria-label=\"Direct link to Continue with the official references\" title=\"Direct link to Continue with the official references\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><a href=\"https://docs.madabina.com/docs/developers/mobile-rest-api\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Madabina REST API guide</a></li>\n<li class=\"\"><a href=\"https://madabina.com/api/docs\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Interactive API reference</a></li>\n<li class=\"\"><a href=\"https://madabina.com/api/openapi.json\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">OpenAPI JSON</a></li>\n</ul>\n<p>The blog explains the integration path; use the API reference for exact endpoint, parameter, and response contracts.</p>",
            "url": "https://blog.madabina.com/articles/developers/rest-api-integration",
            "title": "Madabina REST API: A First Integration Guide for Developers",
            "summary": "Find the Madabina REST API base URL, authentication references, and a safe path to your first integration.",
            "date_modified": "2026-10-15T00:00:00.000Z",
            "author": {
                "name": "Madabina Editorial Team",
                "url": "https://madabina.com"
            },
            "tags": [
                "For developers"
            ]
        },
        {
            "id": "https://blog.madabina.com/articles/sellers/start-online-store-algeria",
            "content_html": "<p><img decoding=\"async\" loading=\"lazy\" alt=\"A seller prepares products beside a mobile online storefront, a parcel, and a launch checklist.\" src=\"https://blog.madabina.com/assets/images/start-online-store-algeria-b7b06e66e16b7347ab9cc1b900d57b7e.avif\" width=\"1200\" height=\"630\" class=\"img_ev3q\"></p>\n<p>Starting an online store means planning more than a website. Before you invite customers, make sure they can understand what you sell, place an order, and see what delivery choices are available to them.</p>\n<p>This checklist focuses on the store setup and customer journey. Business registration, taxes, carrier coverage, and other legal or commercial obligations depend on your situation; check current guidance from the relevant authorities and service providers.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"1-define-the-offer\">1. Define the offer<a href=\"https://blog.madabina.com/articles/sellers/start-online-store-algeria#1-define-the-offer\" class=\"hash-link\" aria-label=\"Direct link to 1. Define the offer\" title=\"Direct link to 1. Define the offer\" translate=\"no\">​</a></h2>\n<p>Write down who the products are for, what problem they solve, and which items you will launch with. A focused first catalog is easier to explain and maintain than a large collection with incomplete details.</p>\n<p>Decide how you will set prices, monitor availability, answer customer questions, and handle an order that cannot be fulfilled. These decisions help you prepare the information that customers need before they submit an order.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"2-prepare-clear-product-pages\">2. Prepare clear product pages<a href=\"https://blog.madabina.com/articles/sellers/start-online-store-algeria#2-prepare-clear-product-pages\" class=\"hash-link\" aria-label=\"Direct link to 2. Prepare clear product pages\" title=\"Direct link to 2. Prepare clear product pages\" translate=\"no\">​</a></h2>\n<p>For each item, prepare a name, price, useful description, product images, and current availability. Explain meaningful choices such as size or color when they apply. If customers use more than one language, prepare the product text in the languages you intend to show.</p>\n<p>Madabina merchants can manage product details, translations, stock, and visibility in their store. See the <a href=\"https://docs.madabina.com/docs/merchants/product-inventory-management\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">product and stock guide</a> for the current workflow.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"3-make-the-order-journey-understandable\">3. Make the order journey understandable<a href=\"https://blog.madabina.com/articles/sellers/start-online-store-algeria#3-make-the-order-journey-understandable\" class=\"hash-link\" aria-label=\"Direct link to 3. Make the order journey understandable\" title=\"Direct link to 3. Make the order journey understandable\" translate=\"no\">​</a></h2>\n<p>Check the public store as a customer would. Product details should be easy to find, the order form should ask for the information needed to process the order, and the total should be clear before submission.</p>\n<p>Place a test order with your own store workflow before sharing the link. Confirm that the order appears in the right merchant workspace and that the confirmation shown to the customer is understandable.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"4-set-delivery-choices-you-can-fulfill\">4. Set delivery choices you can fulfill<a href=\"https://blog.madabina.com/articles/sellers/start-online-store-algeria#4-set-delivery-choices-you-can-fulfill\" class=\"hash-link\" aria-label=\"Direct link to 4. Set delivery choices you can fulfill\" title=\"Direct link to 4. Set delivery choices you can fulfill\" translate=\"no\">​</a></h2>\n<p>Configure the destinations and delivery methods your business is prepared to serve. Review the fee and the choices shown for each destination. Availability depends on the store’s own delivery settings, so test more than one destination if your store serves different areas.</p>\n<p>Use the <a href=\"https://docs.madabina.com/docs/merchants/store-delivery-settings\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">store and delivery setup guide</a> to review the merchant-side settings.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"5-launch-then-improve-one-step-at-a-time\">5. Launch, then improve one step at a time<a href=\"https://blog.madabina.com/articles/sellers/start-online-store-algeria#5-launch-then-improve-one-step-at-a-time\" class=\"hash-link\" aria-label=\"Direct link to 5. Launch, then improve one step at a time\" title=\"Direct link to 5. Launch, then improve one step at a time\" translate=\"no\">​</a></h2>\n<p>Share the store with a small audience first. Watch where customers ask questions or abandon the process, then improve the product information, order instructions, or delivery details that caused confusion. Keep inventory and delivery settings current as the business changes.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"launch-checklist\">Launch checklist<a href=\"https://blog.madabina.com/articles/sellers/start-online-store-algeria#launch-checklist\" class=\"hash-link\" aria-label=\"Direct link to Launch checklist\" title=\"Direct link to Launch checklist\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\">Product names, prices, images, and availability are reviewed.</li>\n<li class=\"\">Store details and language choices are correct.</li>\n<li class=\"\">Delivery destinations, methods, and fees match what you can fulfill.</li>\n<li class=\"\">A test order has been completed and reviewed.</li>\n<li class=\"\">Customers can find a way to contact the store with a question.</li>\n</ul>\n<p><a href=\"https://madabina.com/merchant/register\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Create a Madabina merchant account</a> to start preparing your store.</p>",
            "url": "https://blog.madabina.com/articles/sellers/start-online-store-algeria",
            "title": "How to Set Up an Online Store in Algeria with Madabina",
            "summary": "Prepare a Madabina store in Algeria with a clear catalog, order journey, and delivery settings.",
            "date_modified": "2026-10-15T00:00:00.000Z",
            "author": {
                "name": "Madabina Editorial Team",
                "url": "https://madabina.com"
            },
            "tags": [
                "For sellers"
            ]
        }
    ]
}