<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: K B Zaman</title>
    <description>The latest articles on DEV Community by K B Zaman (@kbzaman2).</description>
    <link>https://dev.to/kbzaman2</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F551726%2F99328f81-e61e-4ced-bd40-133509960e1f.png</url>
      <title>DEV Community: K B Zaman</title>
      <link>https://dev.to/kbzaman2</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kbzaman2"/>
    <language>en</language>
    <item>
      <title>No Code E-commerce APP Builder | BuildEcom</title>
      <dc:creator>K B Zaman</dc:creator>
      <pubDate>Wed, 03 Sep 2025 06:25:37 +0000</pubDate>
      <link>https://dev.to/kbzaman2/no-code-e-commerce-app-builder-buildecom-3il6</link>
      <guid>https://dev.to/kbzaman2/no-code-e-commerce-app-builder-buildecom-3il6</guid>
      <description>&lt;h2&gt;
  
  
  Why mobile‑first matters for eCommerce
&lt;/h2&gt;

&lt;p&gt;Today’s shoppers live on their phones. &lt;strong&gt;Mobile commerce&lt;/strong&gt; is expected to account for more than half of all online sales worldwide and customers expect fast, app‑like experiences. Building a native mobile app from scratch usually requires &lt;strong&gt;thousands of dollars&lt;/strong&gt; and a &lt;strong&gt;team of developers&lt;/strong&gt;. That’s where no‑code platforms such as &lt;a href="https://buildecom.app/" rel="noopener noreferrer"&gt;BuildEcom&lt;/a&gt; come in.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is BuildEcom?
&lt;/h2&gt;

&lt;p&gt;According to &lt;a href="//producthunt.com/products/buildecom#:~:text=Visit%20website"&gt;Product Hunt&lt;/a&gt;, BuildEcom “lets you turn your online store into a mobile app in minutes” and helps merchants manage products, boost sales and reach more customers without touching code.&lt;/p&gt;

&lt;p&gt;It works as a bridge between your WordPress WooCommerce shop and the BuildEcom mobile app infrastructure. By installing the official &lt;a href="https://wordpress.org/plugins/buildecom/#:~:text=Description" rel="noopener noreferrer"&gt;WordPress plugin&lt;/a&gt; you can connect your store, enable push notifications through Firebase and provide mobile‑ready APIs&lt;/p&gt;

&lt;h2&gt;
  
  
  Drag‑and‑drop app builder
&lt;/h2&gt;

&lt;p&gt;Inside the BuildEcom platform you design your mobile app using a visual editor—no coding required. SourceForge notes that BuildEcom “is a no‑code app builder designed for WooCommerce stores” that lets you manage products, track orders and send push notifications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Manage customers with notifications
&lt;/h2&gt;

&lt;p&gt;Push notifications are vital for re‑engaging mobile shoppers. BuildEcom uses Firebase Cloud Messaging to deliver order updates, promotions and abandoned‑cart reminders directly to the user’s device&lt;br&gt;
wordpress.org. Store owners can create custom notification templates from within WordPress and trigger them from WooCommerce events such as new orders or status changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;Mobile commerce is no longer optional—it’s the default for many shoppers. BuildEcom makes it possible for WooCommerce merchants to join the mobile revolution without hiring developers or learning to code. By connecting your store through the BuildEcom plugin, customizing your app with a drag‑and‑drop builder and leveraging push notifications to drive engagement, you can launch a polished mobile app in days rather than months.&lt;/p&gt;

&lt;p&gt;If you’re ready to take your WooCommerce store to the next level, consider giving BuildEcom a try. With affordable pricing, cross‑platform support and a focus on usability, it could be the tool that helps you reach customers where they spend most of their time: on their phones.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Laravel Macroable Trait</title>
      <dc:creator>K B Zaman</dc:creator>
      <pubDate>Fri, 05 Nov 2021 17:08:29 +0000</pubDate>
      <link>https://dev.to/kbzaman2/laravel-macroable-trait-85i</link>
      <guid>https://dev.to/kbzaman2/laravel-macroable-trait-85i</guid>
      <description>&lt;p&gt;Laravel is very popular with developers for its beautiful features. Macroable trait is one of its many beautiful features.&lt;/p&gt;

&lt;h3&gt;
  
  
  Definition in my language:
&lt;/h3&gt;

&lt;p&gt;Speaking of this trait, I would like to say that it is a virtual method maker of class. That means there is a class in your project where you want to call some methods dynamically, but those methods do not have any physical presence in that class. In that case, you can get help from Macroable Trait.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to use:
&lt;/h3&gt;

&lt;p&gt;The first requirement to use this is to use the macroable trait in the class in which you want to create the macro. Then in the boot method of AppServiceProvider class, you have to write the code to create a macro of your class. A format of code is written below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;boot&lt;/span&gt; &lt;span class="p"&gt;(){&lt;/span&gt;
    &lt;span class="nc"&gt;YourClass&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;macro&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'methodName'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$arg&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="c1"&gt;// Your method body and your code&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Suppose you think Laravel's Str class should have a method to connect two strings. But there is no such method in this class. Then you can create your own method for this class, without making any changes anywhere in this class. Because Laravel has some classes that use the Macroable trait by default. Among them Str class one. I will give the list of classes below. So how do we create a method in Str class to concat? You have already seen a demo format. That is the format we will use now.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;boot&lt;/span&gt; &lt;span class="p"&gt;(){&lt;/span&gt;
    &lt;span class="nc"&gt;Str&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;macro&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'concat'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$str1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$str2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="kt"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$str1&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="s1"&gt;' '&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="nv"&gt;$str2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now if you write &lt;code&gt;$str = Str::concat('My String 1', 'My String 2');&lt;/code&gt;  then you will see that the two strings are connected. This means that a virtual method has been created in this class without any change in the Str class.&lt;/p&gt;

&lt;h3&gt;
  
  
  How it works:
&lt;/h3&gt;

&lt;p&gt;When you call the macro method in a class Macroable, it enters the static macro method of the Macroable Trait. I mentioned the method below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;macro&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$macro&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;static&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;macros&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;$name&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$macros&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It registers custom macros and stores them in its static macro property. Here comes the name of the custom method in the name variable and the instance of Closure in the macro variable.&lt;br&gt;
And when you call the custom method, the &lt;code&gt;__call()&lt;/code&gt; and &lt;code&gt;__callStatic()&lt;/code&gt; magic methods of Macroable Trait handle it dynamically.&lt;br&gt;
There is one more feature called mixin in Macroable Trait. I will try to talk about it in a later post InshaAllah.&lt;/p&gt;

</description>
      <category>php</category>
      <category>laravel</category>
      <category>trait</category>
      <category>webdevs</category>
    </item>
  </channel>
</rss>
