Subversion Repositories SmartDukaan

Rev

Rev 37280 | Rev 37296 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 37280 Rev 37291
Line 65... Line 65...
65
  <code>/categoryMaster</code>). Every feed and lookup only ever returns catalogs, SKUs and stock within
65
  <code>/categoryMaster</code>). Every feed and lookup only ever returns catalogs, SKUs and stock within
66
  those categories. <code>title</code> is present and non-empty on catalog, SKU and stock records — the
66
  those categories. <code>title</code> is present and non-empty on catalog, SKU and stock records — the
67
  same derived product title everywhere.
67
  same derived product title everywhere.
68
</div>
68
</div>
69
 
69
 
-
 
70
<h2>Parameters at a glance</h2>
-
 
71
<table>
-
 
72
  <tr><th>Endpoint</th><th>Required</th><th>Optional (default)</th></tr>
-
 
73
  <tr><td><code>/categoryMaster</code></td><td>—</td><td>—</td></tr>
-
 
74
  <tr><td><code>/catalogMaster</code></td><td>—</td><td><code>offset</code> (0), <code>limit</code> (100, max 100), <code>updatedSince</code></td></tr>
-
 
75
  <tr><td><code>/catalogSkuMaster</code></td><td>—</td><td><code>offset</code> (0), <code>limit</code> (100, max 500), <code>updatedSince</code></td></tr>
-
 
76
  <tr><td><code>/skuMaster</code></td><td>—</td><td><code>offset</code> (0), <code>limit</code> (100, max 500), <code>updatedSince</code>, <code>storeId</code></td></tr>
-
 
77
  <tr><td><code>/storeMaster</code></td><td>—</td><td><code>offset</code> (0), <code>limit</code> (100, max 500)</td></tr>
-
 
78
  <tr><td><code>/stock</code></td><td><code>storeId</code></td><td><code>itemIds</code> (≤100 ids); without it: <code>offset</code> (0), <code>limit</code> (100, max 500)</td></tr>
-
 
79
  <tr><td><code>/catalogs</code></td><td><code>catalogIds</code> (≤50 ids)</td><td>—</td></tr>
-
 
80
  <tr><td><code>/catalogSkus</code></td><td><code>catalogIds</code> (≤50 ids)</td><td>—</td></tr>
-
 
81
</table>
-
 
82
<p>Every optional parameter can simply be omitted. <code>updatedSince</code> is epoch
-
 
83
<strong>milliseconds</strong>; omit it for a full sync. <code>limit</code> above its maximum is
-
 
84
silently clamped; <code>limit</code> ≤ 0 falls back to the default.</p>
-
 
85
 
70
<h2>Master feeds (paginated sync)</h2>
86
<h2>Master feeds (paginated sync)</h2>
71
 
87
 
72
<h3><span class="method">GET</span>/categoryMaster</h3>
88
<h3><span class="method">GET</span>/categoryMaster</h3>
73
<p>The categories your key may access, each with its spec schema (the keys you will find in
89
<p>The categories your key may access, each with its spec schema (the keys you will find in
74
<code>categorySpecs</code> on catalog content). Full list, no pagination.</p>
90
<code>categorySpecs</code> on catalog content). Full list, no pagination, no parameters.</p>
75
<pre>GET /external/v1/categoryMaster
91
<pre>GET /external/v1/categoryMaster
76
→ [ { "categoryId": 10006, "label": "Mobile", "displayName": "Mobile Phones",
92
→ [ { "categoryId": 10006, "label": "Mobile", "displayName": "Mobile Phones",
77
      "specs": [ { "key": "ram", "label": "RAM", "position": 1 },
93
      "specs": [ { "key": "ram", "label": "RAM", "position": 1 },
78
                 { "key": "memory", "label": "Internal Storage", "position": 2 } ] } ]</pre>
94
                 { "key": "memory", "label": "Internal Storage", "position": 2 } ] } ]</pre>
79
<p>All feeds accept <code>offset</code> (default 0), <code>limit</code>, and optional
95
<p>All other feeds accept optional <code>offset</code>, <code>limit</code> and
80
<code>updatedSince</code> (epoch ms) and return:</p>
96
<code>updatedSince</code> (see table above) and return:</p>
81
<pre>{
97
<pre>{
82
  "serverTime": 1753600000000,   // pass back as next updatedSince
98
  "serverTime": 1753600000000,   // pass back as next updatedSince
83
  "offset": 0, "limit": 100,
99
  "offset": 0, "limit": 100,
84
  "totalCount": 5321,
100
  "totalCount": 5321,
85
  "records": [ ... ]
101
  "records": [ ... ]
Line 110... Line 126...
110
               "mop": 14999.0, "mrp": 17999.0, "active": true,
126
               "mop": 14999.0, "mrp": 17999.0, "active": true,
111
               "updatedAt": 1753500000000, "addedOn": 1750000000000 } ]</pre>
127
               "updatedAt": 1753500000000, "addedOn": 1750000000000 } ]</pre>
112
 
128
 
113
<h3><span class="method">GET</span>/skuMaster</h3>
129
<h3><span class="method">GET</span>/skuMaster</h3>
114
<p>Per-store stock + price rows for <em>your mapped stores</em>, with full item identity on every row.
130
<p>Per-store stock + price rows for <em>your mapped stores</em>, with full item identity on every row.
115
<code>limit</code> max 500. Optional <code>storeId</code> narrows to one store (must be mapped to you).</p>
131
<code>limit</code> max 500. Optional <code>storeId</code> narrows to one store (must be mapped to you;
-
 
132
an unmapped id → 403 <code>EXT_403</code>). Omitting <code>storeId</code> returns rows across all your
-
 
133
mapped stores.</p>
116
<pre>GET /external/v1/skuMaster?offset=0&amp;limit=500
134
<pre>GET /external/v1/skuMaster?offset=0&amp;limit=500
117
→ records: [ { "storeId": 2116665, "itemId": 101, "title": "Samsung Galaxy A15 SM-A155F",
135
→ records: [ { "storeId": 2116665, "itemId": 101, "title": "Samsung Galaxy A15 SM-A155F",
118
               "brand": "Samsung", "modelName": "Galaxy A15", "modelNumber": "SM-A155F",
136
               "brand": "Samsung", "modelName": "Galaxy A15", "modelNumber": "SM-A155F",
119
               "color": "Blue", "brandIdentifier": "SM-A155FZKW", "availability": 7,
137
               "color": "Blue", "brandIdentifier": "SM-A155FZKW", "availability": 7,
120
               "mop": 14999.0, "mrp": 17999.0, "active": true, "updatedAt": 1753500000000 } ]</pre>
138
               "mop": 14999.0, "mrp": 17999.0, "active": true, "updatedAt": 1753500000000 } ]</pre>
Line 145... Line 163...
145
</div>
163
</div>
146
 
164
 
147
<h2>Real-time lookups</h2>
165
<h2>Real-time lookups</h2>
148
 
166
 
149
<h3><span class="method">GET</span>/stock</h3>
167
<h3><span class="method">GET</span>/stock</h3>
150
<p>Live stock + price in one mapped store, with item identity on every row. Two modes:</p>
168
<p>Live stock + price in one mapped store, with item identity on every row. <code>storeId</code> is
-
 
169
required; <code>itemIds</code> is optional and selects the mode:</p>
151
<ul>
170
<ul>
152
  <li><strong>By ids</strong> — pass <code>itemIds</code> (up to 100). Every requested <code>itemId</code> is
171
  <li><strong>By ids</strong> — pass <code>itemIds</code> (up to 100). Every requested <code>itemId</code> is
153
      returned; no stock row means <code>availability: 0</code>, no active listing means
172
      returned; no stock row means <code>availability: 0</code>, no active listing means
154
      <code>mop/mrp: null</code>. Ids outside your categories come back as id-only rows with
173
      <code>mop/mrp: null</code>. Ids outside your categories come back as id-only rows with
155
      <code>availability: 0</code>.</li>
174
      <code>availability: 0</code>. <code>offset</code>/<code>limit</code> are ignored in this mode.</li>
156
  <li><strong>Full store</strong> — omit <code>itemIds</code> to page through the store's entire stock with
175
  <li><strong>Full store</strong> — omit <code>itemIds</code> to page through the store's entire stock with
157
      <code>offset</code>/<code>limit</code> (max 500); the response is the standard paginated envelope
176
      optional <code>offset</code> (default 0) / <code>limit</code> (default 100, max 500); the response is
158
      (<code>serverTime</code>/<code>totalCount</code>/<code>records</code>). One loop replaces batching ids
177
      the standard paginated envelope (<code>serverTime</code>/<code>totalCount</code>/<code>records</code>).
159
      across many calls.</li>
178
      One loop replaces batching ids across many calls.</li>
160
</ul>
179
</ul>
161
<pre>GET /external/v1/stock?storeId=2116665&amp;itemIds=101,102
180
<pre>GET /external/v1/stock?storeId=2116665&amp;itemIds=101,102
162
→ [ { "storeId": 2116665, "itemId": 101, "title": "Samsung Galaxy A15 SM-A155F",
181
→ [ { "storeId": 2116665, "itemId": 101, "title": "Samsung Galaxy A15 SM-A155F",
163
      "brand": "Samsung", "modelName": "Galaxy A15", "modelNumber": "SM-A155F", "color": "Blue",
182
      "brand": "Samsung", "modelName": "Galaxy A15", "modelNumber": "SM-A155F", "color": "Blue",
164
      "brandIdentifier": "SM-A155FZKW", "availability": 7, "mop": 14999.0, "mrp": 17999.0, "active": true },
183
      "brandIdentifier": "SM-A155FZKW", "availability": 7, "mop": 14999.0, "mrp": 17999.0, "active": true },