Configuration
Set up in this order. Each step names the applet, what it must contain, and what you see when it is missing — because most of what goes wrong in this module is a missing row two applets away from the screen that shows the symptom.
1. Items with a price the storefront can find
Doc Item Maintenance → Items; Pricebook → Pricing Scheme.
The storefront shows an item’s price through the website’s pricing model — a pricing scheme, entity pricing, or EcomSync-by-branch. An item with no price in the scheme the website points at is shown without a price, or not at all. Set the Main Image on the item’s Manage Media tab: that is the listing image the storefront and every marketplace use. Images, video, audio and PDFs that storefront pages, galleries and menus link to live in tenant drives maintained by the Media Library Applet — and only a file whose share policy is anyone with link is ever served to the storefront; the default, restricted, is visible to the uploader alone.
For a marketplace, also set the item’s Dimension Details (height, length, width, weight) before linking it to a shop — the listing record carries its own copy and the shop’s logistics need it.
2. The branch and the merchant behind the storefront
Organisation → Branch; Merchant Admin → Merchant.
A Website cannot be created without a branch, and its Details tab wants a merchant entity.
For GadgetSphere Online Sdn Bhd (GSO) that is the fulfilment-centre branch and a merchant record
for GSO itself, carrying the gateway merchant code and key the payment callbacks are verified
against. If the group also lets third-party sellers trade on the storefront, each seller is a
further merchant entity — see step 8.
3. Settlement methods and payment channels
Cashbook → Settlement Method; the Payment Channel applet.
The storefront offers the settlement methods linked to the website (its Settlement Method tab)
and to each country (the Country tab), and reads the payment provider codes from the payment
channels maintained in the Payment Channel applet (paymentchannelApplet — a live applet with no
reference page yet; see the module page). A channel names a gateway, its
currency and country, the acquirer entity and the amount limits. The hosted payment-choice page — the
step that lists your channels and redirects the shopper to the gateway — accepts only a gateway in
the platform’s gateway register — about thirty codes, mostly South-East Asian and Indian
wallets, cards and bank transfers, including iPay88, GrabPay (Malaysia), Boost, Atome,
IOU Pay and PayNet. A gateway outside the register cannot be reached through that page, and
one active channel naming such a gateway stops it listing any channel — it fails with Payment Channel Required List Not Defined Yet. We have not confirmed which gateways
the Payment Channel screen offers, nor whether PayPal or FPX, which have their own endpoints but are
not in the register, can be used at a storefront checkout; ask BigLedger before you plan on one.
Missing settlement method: the checkout shows no payment option. Missing payment channel: the provider list at payment time is empty.
4. The website
CP Commerce Admin → Website.
Create the Website (title, branch, pricing, membership class — all four required), then work the Details tab: menus, default layout routing, authentication portal, content category, the sales order printable format. Build pages on the Layout Instance tab, set the mobile app version, link the settlement methods, upload the legal agreements, and set Status to Active. A website that is not Active, has no default layout routing, or has no branch and merchant is invisible to customers — the first row of that applet’s troubleshooting table.
If you charge for delivery, tick Enable Shipping Fee Process, choose Shipping Pricebook as the option, and pick the default Shipping Pricebook and the service item the fee is written to. Without the item the storefront computes no fee and shows RM 0.00. Remember that the storefront evaluates the price book in the browser and diverges from the applet in known ways (Single Line rules are never evaluated; a date-range rule always passes; an Inactive price book is still offered) — that applet’s Lifecycle section lists them.
Themes, widgets, menus and categories can also be edited in the older Content Management System applet; it writes the same CMS tables the storefront reads.
5. The knock-off row — or the cart tab stays empty
Organisation → Company → Knock Off Configuration.
A cart that staff or a customer login set FINAL reaches the
Sales Order (Internal) applet’s Search
Shopping Cart tab only if the company has an INTERNAL_SHOPPING_CART → INTERNAL_SALES_ORDER
knock-off row. Paid storefront checkouts do not need it — the server converts those directly — but
every manually finalised cart does. The symptom of the missing row is silent: FINAL succeeds, the
tab is empty.
6. Customer logins, if customers key their own carts
Customer Maintenance; Shopping Cart Customer Access (Internal).
The Customer Access applet scopes everything by the signed-in login’s link to a customer entity — written on the customer record’s Login tab — and allows one open cart per entity. A customer whose login is not linked signs in and sees nothing — the same rule as the supplier-access applets in Purchasing. Two things to know before handing it to a client: its FINAL converts the cart in place into a sales order through the storefront service, and the backend currently rejects that call from this applet, so plan for staff to finalise customer-keyed carts from the Shopping Cart (Internal) listing; and its line search offers every readable item, not only sellable ones.
7. The marketplace branch and its jobs
Organisation → Branch → Marketplace; Doc Item Maintenance → Marketplace tab, Settings → Ecomsync Management, Scheduler.
Follow the fourteen numbered steps on the EcomSync index; in short:
- Create a branch per shop and set its Marketplace → Details (type, authorisation, default entity), Stock Configuration (mode, buffer, sales-order handling), Settlement and Pricing Scheme.
- Pull the shop’s category tree, brands and logistics once per branch (Ecomsync Management) — until this has run, the category and brand pickers on every listing are empty.
- Link items to shops on the item’s Marketplace tab, then publish from the branch’s Publish Item sub-tab or by CSV import.
- Create the Scheduler records. Only the Lazada and Shopee job codes can be created from that screen; the TikTok Shop and Shopify processors exist in the backend but are scheduled by BigLedger support.
Marketplace orders then appear in Sales Order (Internal), or in the cut-down Tiktok Sales Order Applet if that build is what a tenant installed — numbered and FINAL on the marketplace branch, with no step for a person in between.
8. Sellers, if other businesses sell through you
Merchant Admin; Pricebook; Seller Applet.
Each seller is a merchant entity with at least one login link. The automatic allocation of a sales-order line to a seller works only when exactly one seller’s marketplace pricing scheme covers the item, so the pricing-scheme links decide who gets what; ambiguous items wait for manual allocation. The Seller Applet page records that several of its buttons reach no backend in the current build, and that the seller-order processors are not scheduled by anything in the repository — confirm with support that they run for your tenant before relying on the queue.
9. Permissions — your only control
There is no approval engine anywhere in this module. What you can gate:
- the finalise and delete permissions on the Shopping Cart and Sales Order applets
(delete on a cart additionally needs the
SHOW_DOCUMENT_DELETE_BUTTONsetting); - Spending Limit rules per member class in CP Commerce Admin, which are what a B2B portal’s buyer actually runs into;
- Feature Visibility per team and Sidebar per user in every applet, and the server-side permission sets on the CMS entities;
- on the storefront side, Restrict View/Access by Entity and the Account tab, which gate a B2B website to linked entities.
What success looks like
- A test shopper on the storefront completes a checkout with the gateway’s test mode and, within a
minute, a
TEMP-free sales order exists on the website’s branch, carrying a settlement line with the gateway’s merchant reference. No receipt voucher is made for it. - A cart keyed in the Customer Access applet and set FINAL appears in the Sales Order applet’s Search Shopping Cart tab.
- A marketplace order placed on the shop appears on the marketplace branch after the next scheduled run already numbered and already FINAL. Nothing is waiting for you to open it; if an order has no running number, that is a fault, not a queue.
- The number on a Lazada or Shopee shop for a test item equals stock balance minus open orders minus the buffer.
Common mistakes
| Symptom | Cause | Fix |
|---|---|---|
| FINAL cart never appears in the Sales Order applet | No Shopping Cart → Sales Order knock-off row | Add it in Organisation → Company → Knock Off Configuration |
| Checkout has no payment option | No settlement method linked to the website or the country, or no payment channel for the provider | Steps 3 and 4 |
| Shipping fee is RM 0.00 | Item Code for Shipping Fee not set, or the shipping option not chosen | Website Details tab |
| Customer signs in to Customer Access and sees nothing | Login not linked to a customer entity | Customer record’s login link |
| Listing category and brand pickers empty | Ecomsync Management never run for the branch | Run the four pull actions with the branch selected |
| Marketplace order has no running number | Not expected — ingestion numbers and finalises in one pass | Treat it as a failed run: check the branch’s connection record (Remarks and Updated date). Re-running the order job will not repair it, because every order job skips an order already on the branch. Report the order to support with its marketplace order number and branch, and keep it on your exception list until the Sales Order listing shows it numbered and FINAL |
| An order is on the shop and nowhere in BigLedger | The pull is a lookback window, not a cursor, so a run that did not happen leaves a permanent gap; or the order’s SKU is not linked to a listing, in which case the whole order is skipped and an e-mail goes to the job’s configured address | Widen the job’s interval once, by hand, to cover the gap (Shopee caps it at fifteen days), and create the missing item first — the order is not queued waiting for it |
| Nothing syncs for a TikTok Shop or Shopify branch | Their processors are not created from the Scheduler screen | Check the Scheduler applet picker for the TikTok or Shopify processor code before asking — the marketplace screen offers only Lazada and Shopee, but the picker is not limited to what that screen offers. If the code is not there either, name it and the branch (what to send). |