<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Commerce Kits What's New</title>
    <link>https://commercekits.com/whats-new</link>
    <atom:link href="https://commercekits.com/whats-new/feed.xml" rel="self" type="application/rss+xml"/>
    <description>Short notes on what changed in Commerce Kits apps, and how those changes work.</description>
    <language>en</language>
    <lastBuildDate>Tue, 10 Nov 2026 09:00:00 GMT</lastBuildDate>
    <item>
      <title>Ask Sidekick what a recipe costs</title>
      <link>https://commercekits.com/whats-new/costcraft-and-shopify-sidekick</link>
      <guid isPermaLink="true">https://commercekits.com/whats-new/costcraft-and-shopify-sidekick</guid>
      <pubDate>Tue, 10 Nov 2026 09:00:00 GMT</pubDate>
      <description>Costcraft lets Shopify Sidekick look up material stock, recipe cost, margin, and how many units you can still make. The tools stay read-only.</description>
      <category>Costcraft</category>
      <category>Sidekick</category>
      <content:encoded><![CDATA[<p><strong>Short answer:</strong> Costcraft registers read-only tools with Shopify Sidekick. On Home, a material, or a recipe, Ask Sidekick appears only when Sidekick is available. A tap opens Sidekick with a question already written for that page. Sidekick answers from the shop's materials, recipes, production runs, and purchase orders, and links to the matching Costcraft page. It cannot change stock or recipes, and it does not return supplier contact details.</p><p><a href="https://commercekits.com/costcraft" data-discover="true">Costcraft</a> is for merchants who make what they sell. The numbers that matter day to day are not on the product page: which materials are low, what a recipe actually costs, and how many units you can still make. Shopify Sidekick can ask those questions in plain language, as long as the app gives it a way to read the data.</p>
<h2 id="where-ask-sidekick-appears" class="group scroll-mt-28">Where Ask Sidekick appears</h2>
<p>Costcraft shows <strong>Ask Sidekick</strong> in the secondary actions on three pages: the app home, a material, and a recipe. The button is not there for every shop. Before it renders the control, Costcraft asks Shopify whether Sidekick is enabled. If the shop does not have Sidekick, the call is refused, or the embedded app has no Sidekick API, the button is left out.</p>
<p>Nothing opens when the page loads. Sidekick starts only after a click. If that launch fails, Costcraft shows a short notice that Sidekick is not available right now. Closing the app inside Sidekick has the same result: the button may be visible, but the conversation does not open.</p>
<p>Each page sends a question that matches what is on screen:</p>
<ul>
<li>Home asks which materials are below their reorder point, and what to reorder.</li>
<li>A material asks how many units you can still make with it, and which recipes use it.</li>
<li>A recipe asks for the unit cost, the margin, and how many units that recipe can still make.</li>
</ul>
<p>The question is about Costcraft&#x27;s own data. A conversation started from the app does not call another app&#x27;s tools, and it does not ask Sidekick to change the Shopify shop along the way.</p>
<h2 id="what-sidekick-is-allowed-to-look-up" class="group scroll-mt-28">What Sidekick is allowed to look up</h2>
<p>Sidekick calls Costcraft&#x27;s read-only tools. Each call is limited to the current shop and returns at most ten rows. Amounts use the shop currency. A margin of 0.4 means 40 percent. &quot;How many you can make&quot; uses stock at the shop&#x27;s default location.</p>
<p>The tools cover the questions a maker actually asks:</p>
<ul>
<li>A store snapshot: stock value, how many materials are low or out of stock, open purchase orders, and material use and production over the last 30 days.</li>
<li>Materials at or below the reorder point, with a suggested reorder quantity and a link to the low-stock list.</li>
<li>Search by material name or SKU. You can limit that search to active, low, or archived materials, and to raw materials or sub-assemblies you make yourself.</li>
<li>One material: its cost, stock at each location, quantity on order, the supplier&#x27;s name, and the recipes that use it.</li>
<li>Search for a recipe by product, variant, SKU, or sub-assembly, with unit cost, margin, and how many you can make.</li>
<li>One recipe: its materials, the batch cost and the unit cost, the margin, how many you can make, and whether materials come off the order or when a production run is finished.</li>
<li>Production runs by status: planned, in progress, completed, or cancelled.</li>
<li>Purchase orders by status. Open orders are drafts, placed orders, and partial receipts. The amount still to receive is an estimate of what has not arrived yet, and shipping stays in the order total.</li>
<li>Suppliers by name: the name, how many materials they supply, how many purchase orders are still open, and the lead time.</li>
</ul>
<p>A single material or recipe is opened by Costcraft&#x27;s own id, not by the Shopify product id. Sidekick is expected to search first, then use the id from that result.</p>
<h2 id="from-an-answer-to-the-right-page" class="group scroll-mt-28">From an answer to the right page</h2>
<p>A result can include a link that opens the matching Costcraft screen, so the reply is not a dead end. Those links open:</p>
<ul>
<li>the material</li>
<li>the low-stock list</li>
<li>the recipe</li>
<li>a new production run for that recipe</li>
<li>a new purchase order for that material</li>
<li>the reorder draft built from what is low</li>
<li>the inventory valuation report</li>
</ul>
<p>Sidekick can use the link in its answer. You still do the work on the page. The tools do not click the button for you.</p>
<h2 id="what-it-will-not-do" class="group scroll-mt-28">What it will not do</h2>
<p>The tools do not create or edit materials, recipes, production runs, purchase orders, or stock. To change a number, open the linked page and change it there.</p>
<p>Supplier email, phone, and contact names are dropped before a response is sent. Customer data is not read. Without an active plan, the reply says a subscription is required. It does not compare plans or push an upgrade.</p>
<p>Lists stop at ten rows. When more exist, the response says so. That keeps an answer short enough for Sidekick to use, and it keeps a broad question from dumping the whole catalog into the chat.</p>
<p>Sidekick is a way to ask what the shop already knows. The recipe, the production run, and the purchase order stay where you edit them, in <a href="https://commercekits.com/costcraft" data-discover="true">Costcraft</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Product photos on the Weigh Kit list</title>
      <link>https://commercekits.com/whats-new/weigh-kit-product-photos</link>
      <guid isPermaLink="true">https://commercekits.com/whats-new/weigh-kit-product-photos</guid>
      <pubDate>Tue, 10 Nov 2026 09:00:00 GMT</pubDate>
      <description>Weigh Kit shows a product photo on each POS list row, using a small WebP thumbnail that already rides in the catalog snapshot.</description>
      <category>Weigh Kit</category>
      <category>POS</category>
      <content:encoded><![CDATA[<p><strong>Short answer:</strong> Each product row in Weigh Kit's POS list shows a 56-pixel photo. The product row uses the featured image, or the first variant image when the product has none. Variant rows use that variant's own photo. Shopify's CDN serves a 128-pixel center-cropped WebP, and that address rides in the catalog snapshot the till already downloads, so the list makes no extra image request. With no photo, or while offline, the POS placeholder keeps every row the same height.</p><p>Staff at a deli counter do not read a SKU when the line is moving. They look for the roast, the cheese, or the bag of nails. <a href="https://commercekits.com/weighkit" data-discover="true">Weigh Kit</a> now puts a photo on each row of the POS product list, and the photo is small enough that the list still opens with the catalog.</p>
<h2 id="what-the-product-row-shows" class="group scroll-mt-28">What the product row shows</h2>
<p>The product list groups variants under the product, in the order you set on the products screen in the admin. A product takes the position of its first variant. Each product row now carries a square thumbnail, 56 pixels on a side.</p>
<p>The image is the product&#x27;s featured photo. If the product has no featured photo, the row uses the first variant that has one. That also covers a catalog saved on the till before the product image was stored on its own. An older snapshot still has a variant image, and the row can use it.</p>
<p>Variant rows keep their own photos. A variant with no photo borrows the product image. A variant that has its own photo does not replace the product row. The featured image can sit on a later variant. The product row still shows that featured image, not whatever photo happens to be first.</p>
<p>The box is the same size on every row. The picture is cropped to cover the square, so a wide pack shot fills the tile instead of sitting in a short strip with empty bands above and below.</p>
<h2 id="why-the-file-is-small-before-it-reaches-the-till" class="group scroll-mt-28">Why the file is small before it reaches the till</h2>
<p>Weigh Kit does not send the original product photo to the register. When it builds the catalog for a location, it asks Shopify&#x27;s CDN for a transformed image:</p>
<ul>
<li>at most 128 by 128 pixels</li>
<li>cropped from the center</li>
<li>delivered as WebP</li>
</ul>
<p>One hundred twenty-eight pixels is enough for a 56-pixel box on a screen that draws two physical pixels for every CSS pixel. Asking for the original, often a large PNG or JPEG uploaded for the online store, would spend the till&#x27;s time and memory on pixels the row cannot show. Center crop matches the square tile. WebP is smaller than the source file the merchant uploaded.</p>
<p>The same transform is applied twice, and the two results stay separate. One is the variant image. The other is the product&#x27;s featured image. The product row reads the featured image. The variant row reads the variant image, then the product image if the variant has none. Mixing them into a single field would make the product row follow the first variant, which is the wrong photo whenever the featured shot lives somewhere else.</p>
<h2 id="why-the-list-does-not-wait" class="group scroll-mt-28">Why the list does not wait</h2>
<p>Those thumbnail addresses are fields on the catalog snapshot. That snapshot is the payload the POS extension already downloads for prices, barcodes, tare, and stock. The list does not call a second API to fetch pictures, and it does not download a gallery of full-size files. When the snapshot is on the device, the row already knows the image address and can request that small file from Shopify&#x27;s CDN.</p>
<p>The thumbnail box is always 56 by 56 pixels, with or without a source. If there is no address, the image is rendered without one and Shopify POS shows its placeholder. Offline, the snapshot can still be there from an earlier download, but the CDN file may not load. The placeholder is the right result. The row does not collapse, and the title and price stay aligned with every other row.</p>
<p>A shop that adds a photo later sees it on the next snapshot. Until then, staff see the fixed placeholder, not a broken layout or a request that blocks the rest of the list.</p>
<p>The photo is there so the right product is obvious at a glance. The bytes behind it stay a thumbnail, already named in the catalog the till had to load anyway.</p>]]></content:encoded>
    </item>
  </channel>
</rss>
