Shopify Aras Kargo Integration
Shopify's own shipping runs in eight countries and Turkey is not on that list: you cannot buy labels from the admin, you cannot show the carrier's live rate at checkout, and you cannot create a return label. That is why shipping integration in Turkey is not a comfort add-on; it replaces a missing piece. The detail that sets Aras apart is this: your account credentials do not come from one place. Shipment-creation permission comes from your representative, query permission is taken by yourself from the customer panel, and mixing these two is the topic that most often blocks setup.
growing on Shopify with Nodus Works
Shopify Aras Kargo integration what is it?
The Shopify Aras Kargo integration is the connection that declares store orders as shipments to the carrier, prints the label, writes the tracking number on the order and reads delivery status back. Aras does not publish its own Shopify app; an integration tool builds the bridge using your corporate account credentials.
Setup starts with an agreement, not with writing code. After you sign a corporate contract and your customer code is defined, shipment-creation credentials come through your sales or customer representative. The tracking and query side runs separately from that: you define those credentials yourself from the integration section of the customer panel. When you need to manage tracking data for more than one carrier from the same panel, Nodus Works' Shopify integration and custom app development service joins that connection.
Once the connection is live, daily work runs from one screen: the order is declared, the label is printed, the customer notification goes out from Shopify's own email when the tracking number is written on the order, and the order closes on its own when delivery status is read back. Cash-on-delivery and return flow are managed through the same connection.
What a shipping integration actually does
Once the connection is live, shipment declaration, label, tracking, delivery status, collection and returns become parts of the same flow. The six headings below cover the questions asked most often about the Shopify Aras Kargo integration.
Creating and declaring a shipment
The order address is declared with the data on the order instead of being typed into the carrier by hand. A label printed without a declaration has no counterpart, so this step is the first link in the flow; an undeclared label cannot be scanned at the branch.
Printing the label and barcode
The label is printed from the order screen, so you do not need to open a second panel. The carrier defines the barcode number; using a number the integration invented as a barcode produces a label that will not scan.
Writing the tracking number on the order
When the tracking number is written on the order, the customer notification goes out from Shopify's own email. This is the one step that cuts where-is-my-package questions; if the number is not written, the customer sees nothing.
Reading delivery status back
When the carrier status is written on the order, the order closes on its own. If status is not read back, the order list becomes a pile of unfulfilled orders and the start of the return window is tracked by hand.
Reconciling cash-on-delivery shipments
On a cash-on-delivery order the amount to collect is read from the order total and written on the shipment, and the order is marked paid when the money reaches the account. On the Shopify side this is set up as a manual payment method.
Return shipments
When a return code is produced and sent to the customer, the customer can leave the package at a branch, a pickup point or a partner shop. At Aras the scope of this flow depends more on the panel you use than on the firm; we cover that in a separate section below.
How far does Shopify's own shipping go in Turkey?
The whole need for a shipping integration starts here. Shopify's shipping side was built for specific countries and Turkey is not on that list.
You cannot buy a label from the admin
Shopify's own shipping is tied to shipping origins in eight countries and Turkey is not on that list. The buy-a-label flow never appears on the order screen; the label is printed from the carrier panel or from an integration.
Checkout cannot show a live carrier rate
Pulling a live rate from the carrier's own account is available only on higher plans, and the supported carrier list has no Turkish shipping firm. So the shipping charge at checkout in a Turkish store is a fixed or conditional rate you set by hand.
A return label does not come out of Shopify
Creating a return label through Shopify requires both the shipping origin and the buyer address to be in the United States. In Turkey the return label is produced outside and uploaded to the order, or you choose no shipping needed on the approval screen.
The product card has no length, width or height
The Shopify product card has weight and no dimensions; dimensions live only on the package definition in shipping settings, and the package assigned to a product applies only on single-line orders. That is why the data needed to calculate desi is not on the order.
You cannot add a district field at checkout
On plans other than Plus you cannot add city and district pickers at checkout; a Shopify employee says this in a reply to a request from Turkey. The carrier side expects district as a separate, recognizable value.
The notification chain is ready, the trigger is yours
Shopify already carries shipping confirmation, shipping update, out for delivery and delivered notifications. The last two depend on an event from the carrier; so the notification layer exists, and the data that feeds it comes from the integration.
The shared result of these six points is this: in Turkey a shipping integration does not add convenience on top of Shopify, it puts a missing piece in place. Label production, tracking number and delivery status do not enter Shopify any other way.
How do you set up Shopify Aras Kargo integration?
The six steps below cover the whole setup, from the corporate application to printing the first label. The second and third steps are specific to Aras: one half of your account credentials comes from your representative, the other half comes from the customer panel.
Submit your corporate application
The application runs through a four-step form on the firm's own site: company details, contact details and address details are requested. You fill the form on araskargo.com.tr and wait until the meeting; the contract and customer code are defined after that meeting.
Ask your representative for shipment-creation credentials
The username and password of the service that opens a shipment record are not self-service; they are requested from your sales or customer representative. Login credentials for Müşteri İşlem Sistemi also come the same way. In this step you also say which shipment types you will use, and your cash-on-delivery and return needs.
Define your query service from the customer panel
The tracking and query side runs separately: a registration form is filled in the integration section of the customer panel, the service method you will use is chosen, and your query username and password are produced there. Your customer code is also part of this trio. Setups that do not know this split get stuck on the tracking side.
Build the connection and define your sender details
Credentials coming from both sides go into the tool you use, and your sender address and origin branch are defined. After setup there can be a wait for branch definitions to complete on the first shipment; not putting the first trial on a busy day makes the work easier.
Define the address, desi and payment setup
Make address line 2 required at checkout and rename it to district; the integration treats that field as district. Also set the printer you will print labels from, how shipments will be declared, and, if you will use cash on delivery, the manual payment method on the Shopify side in this step.
Confirm the flow with a test shipment
Create a shipment from a single order, print the label, and check that the tracking number is written on the order and the customer notification goes out when the package is scanned at the branch. Then confirm that delivery status is read back and the order closes; if query credentials are missing, the blockage shows exactly at this step.
The table below shows which Shopify data maps to which counterpart on the carrier side.
| What Shopify has | What the carrier uses |
|---|---|
| Order | Shipment declaration |
| Shipping address | Recipient address |
| Address line 2 | District, must be a separate recognizable value |
| Phone | The number the notification message goes to |
| Weight | One side of the chargeable weight |
| Package definition | Source of the desi calculation, on single-line orders |
| Tracking number | Assigned after the barcode is scanned at the branch |
| Fulfillment | Label and packing slip |
| Payment status | Amount collected on a cash-on-delivery shipment |
| No Shopify field | Length, width, height; return code; origin branch; declaration type |
The last row of the table is where this work produces the most trouble. Length, width and height do not exist in Shopify at all, so the desi declaration is either a fixed value or derived from the package definition; return code, origin branch and declaration type live only on the carrier side.
Tell us about your catalog and current setup, and we will work out how the Shopify Aras Kargo integration should be built for your product structure. You do not need to fill in a form, reach us directly by phone, email or WhatsApp.
Where do you get Aras integration credentials?
At Aras the answer to this question splits in two. The username and password of the service that creates a shipment are requested from your sales or customer representative. The tracking and query side comes another way: there is a registration form in the integration section of the customer panel, you choose the service method you will use and produce your query username and password yourself. If a source tells you that you can take all credentials from one place, it is skipping half of setup.
The second detail is that the firm has no public developer page. On its official site Aras lists integration models by name: branch dispatch, mobile dispatch, label produced by the customer, supplier and return integration, international dispatch, query service, custom integrations and online operations. The site sends you to a representative for detail; a field list, service definition and test-environment information are not published. That is why you need written confirmation of the service type and the label file format from your representative.
Your corporate account's own interface is Müşteri İşlem Sistemi: it gives opening a shipment record, producing your own barcode, tracking, delivery and handover reports, current-account and collection follow-up, and invoice payment. Panel login credentials are also not self-service; they are requested from the representative. The integration does not replace this, it makes it unnecessary: because order data comes from your store, you do not type the address into a second place by hand.
There is also the question of who the agreement belongs to. Apps do not provide a shipping agreement; you sign it in your own company's name and the invoice comes from the carrier. The alternative is stores without their own agreement shipping on an intermediary's bulk rate; in that case the fee is paid to the intermediary. The two models must not be mixed, because who the invoice comes from and who sets the rate both change.
Why does the tracking number not arrive at once?
This is the question asked most often on shipping integrations, and the answer is usually the process itself, not an error. A barcode and a tracking number are not the same thing, and the two are created at different moments.
A barcode and a tracking number are not the same thing
The barcode is an intermediate number produced so the carrier can recognize the package. The tracking number is assigned after the package reaches the branch, the barcode is scanned and the invoice is issued. That is why the tracking number is written on the order after the package reaches the branch, not at once.
An undeclared label cannot be scanned at the branch
The label shows an undeclared warning and the package does not enter the system. Printing the barcode first and declaring later is not a problem; the reverse is. The flow must always close with a declaration.
There can be a wait on the first shipment
After the integration is set up, branch definitions need to complete for the first shipment to drop into the system; later shipments process at once. This wait is not an officially announced time, it is a behavior known from setup documents in the field.
Label size decides whether the barcode will scan
The common size in ecommerce is a fifteen-by-ten-centimeter thermal label. You can print without a thermal printer, but printing a label-size design on large paper shrinks the barcode until it will not scan; in that case a packing-slip format is preferred.
If the tracking number is not written, the customer sees nothing
Shopify's notification chain starts when the tracking number is written on the order. When the number is not written, the customer cannot learn that the package has left, and the support load comes back to you; if you also sell on a marketplace, the same delay hits your score on that channel.
If query credentials are missing, status is not read back
At Aras, tracking and query run from a separate service, so when that side is not defined the shipment is created, the label is printed, but delivery status never arrives. If the order list is swelling in unfulfilled status, this is the first place to look.
If the order is cancelled, the declaration must be cancelled as well; if the address changes, the declaration is cancelled and created again. After the package is on the road, both become branch work, so how far cancel and address change can go in the flow is something your team needs to know.
How is Aras Tahsilatlı set up in Shopify?
Cash on delivery is set up separately on both sides: as a payment method on the Shopify side, and as a shipment type on the carrier side. The firm's official name for this service is Aras Tahsilatlı Gönderim.
The Shopify counterpart is a manual payment method
In Settings, under payments, cash on delivery sits as a ready manual payment method. On such an order, payment opens as pending and is marked paid after collection happens.
Collection is taken in cash or by credit card
According to the firm's own page, the product amount is collected from the buyer at delivery and transferred to your bank account, and collection can be done in two ways. How many days the money takes to reach the account is not written on the official page, so we do not give a day count here; you need to confirm it in your contract.
The service is tied to a trade title and a separate contract
Aras Tahsilatlı is open to customers who have a trade title and have signed a contract for this service. So even if you have a corporate agreement, cash-on-delivery shipments do not open on their own; you need to say this need in the application.
Reconciliation is the integration's job
The amount to collect is read from the order total and written on the shipment, and the order is marked paid when the money reaches the account. If this match is not set up, every order is marked by hand and at month end which collection belongs to which order is lost.
Region and amount limits are not built in
Restricting cash on delivery by region, setting an amount limit or adding a cash-on-delivery fee do not come as ready settings in Shopify. Those are solved with rate setup or an extra app.
An unaccepted package means a two-way fee
Collecting payment at delivery raises the rate of packages that are not accepted. It is known that a return fee is invoiced separately on shipments that come back without delivery; because the rate changes by agreement we do not write a tariff, but this line needs to be counted.
What you need to confirm before setup
Because Aras has no public developer document, some topics are only clear in your contract and in the information your representative gives. The nine headings below are the ones that are contradictory or unpublished on the internet; if they are confirmed before setup, no step is walked back later.
Which documents are requested and how long approval takes
The application form only asks for commercial information and does not include a document upload. Because a firm-specific document list and approval time are not published, you need to ask this in the meeting; day counts on the internet are generalizations from other firms' flows.
How many days the money takes to reach the account on collection
The existence of the service and collection being taken in cash or by credit card are official. The transfer time is not written on the official page, though; if you will set your cash flow to this, confirm the time in your contract.
What is the collection service fee
Cash on delivery brings an extra line on top of the shipment fee at most firms. Because the existence and amount of this line depend on the agreement, we do not give a rate here; you should set the cash-on-delivery fee at checkout to that.
Is the return code fixed or one-time
That supplier and return integration exists as a model is official. The only source on code type is a software firm's own document; if you will set up a return flow, ask your representative the model question clearly.
Can you call a courier from the panel
The official definition of Müşteri İşlem Sistemi has shipment record, barcode production and reports; a one-click courier-call phrase does not appear. Pickup from the address appears to depend on a regular daily shipment volume; at low volume you may need to take the package to the branch.
Can you ship from more than one branch
At some firms, merging branch data runs as a separate request. For Aras there is no official source for or against this; if you will ship from two warehouses you need to ask this before setup.
Which format and size the label comes in
Sources on label file format and service type contradict each other. If you will buy a thermal printer, ask the size and format question to the provider of the tool you will use; do not choose a printer by trusting one source's table.
Will a test environment be given
That a separate test address exists appears in open-source drivers but is not officially announced. If you want to try before creating a live shipment, you need to request test access during the application.
Is there a minimum monthly shipment-volume requirement
That corporate rates depend on volume is a general fact, but the firm has no published lower bound. If you are a newly opened store, settling the rate and volume commitment in the meeting prevents a surprise invoice later.
Why is the shipping invoice higher than you expected?
There are two reasons and both come from Shopify's data structure: district cannot be stored as a separate field, and the product card has no dimensions. Both are problems that can be solved in setup.
Desi is volume turned into a charge
The invoice is issued on whichever is larger, weight or desi. Package volume is found in cubic decimeters, divided by three on a domestic shipment and by five on an international shipment; the result is compared with kilograms.
Rounding is not always up
The sector's official calculation texts round the fraction up from one half and down below it. Some calculators on the internet write that it is always rounded up to the next whole number; that contradicts official texts.
The data to calculate desi is not on the order
The Shopify product card has no length, width or height field; dimensions live only on the package definition, and a multi-line order uses the store default package. That is why some integrations declare the shipment with a fixed desi.
The branch measures the real desi, the difference hits the invoice
If the declared value and the value measured at the branch differ, the invoice is issued on the measured value. The shipping charge you took from the customer stays fixed while your invoice changes, so the difference comes straight out of margin.
District must be a separate, recognizable value
The carrier side expects district as a separate field. A district buried in free text, misspelled or left empty fails shipment creation; the package goes to the wrong transfer hub and is delayed.
The fix is turning address line 2 into district
The path used in the field is one: address line 2 is made required in checkout settings and renamed to district by editing the checkout language. The second path is taking an address confirmation after the order.
These two topics are where your shipping cost grows quietly. Defining your package standards and declaring shipments on their real dimensions also lets you set the shipping rate at checkout to that real cost.
Does the return flow come from Aras, or from the panel you use?
The real split in the return flow starts here. For the same shipping firm one panel does not cover returns at all, another produces a return code, a third gives a return and exchange barcode. So your return flow is decided by the tool you choose, not by the firm.
Return scope changes from panel to panel
A common corporate software's document writes clearly that its Aras integration does not cover return processes; another panel supports producing a return code and sharing it with the customer. This is exactly where you need to make your tool choice according to your return need.
The return-code model is tied to an agreement
A fixed return code is the same on every return; a one-time code is specific to the order. Because the firm's official pages have no explanation of code type, we do not claim a model here; if you will set up a return flow, you need to confirm this in your contract.
The customer can leave a return at a shop
The firm's pickup-point and locker network lets the consumer leave a shipment at a neighborhood shop and this also covers returns. Being able to show the customer the nearby point instead of a branch address is a concrete advantage that reduces return friction.
The buyer can redirect delivery while the package is on the road
The firm's routing platform gives the buyer live tracking, changing the pickup point, updating the address until the delivery hour and postponing delivery. Some address errors are recovered on the buyer side this way.
The buyer changing the address does not fix your declaration
Even though the buyer can update the address, a missing district or wrong desi in your declaration stays where it is. So the routing platform is a recovery mechanism, not a replacement for doing the address layout in setup.
The return-label option does not appear in Shopify
You can turn on self-service returns in the store, but in Turkey the create-return-label option does not appear on the approval screen. An externally produced label is uploaded, or no shipping needed is chosen and the code is sent to the customer.
If you have marketplace channels, label, invoice and return flow split in two: Trendyol and Hepsiburada packages leave with their own labels while store orders go on your agreement. There is also no single-screen answer to what is my shipping cost: marketplace shipping sits on the payout report, your own agreement sits on the monthly invoice, and cash on delivery sits in the collection flow. To run the two flows in the same warehouse without mixing them, look at Station.
The most common mistakes in a Shopify Aras Kargo integration
The nine headings below are the mistakes met most often in setup. The results also look alike: the package stays at the branch, the customer is not informed, or the invoice comes in above what was expected.
Waiting for all account credentials from one place
Shipment-creation credentials come from the representative, query credentials come from the customer panel. Setups that wait for both from the same place either cannot create a shipment or create the shipment and never read tracking status.
Going live without defining the query service
When the query side is not set up the label is printed, the package leaves, but delivery status does not come back. The order list swells in unfulfilled status and end-of-day checks start being done by hand.
Starting setup before the agreement
The precondition for the integration is a corporate contract and a customer code; apps do not provide this agreement. Setup cannot start because the account credentials do not arrive before the agreement is complete.
Not saying cash-on-delivery in the application
Cash on delivery is a service tied to a trade title and a separate contract. Even if you have a corporate agreement, if you do not say this need from the start the cash-on-delivery shipment does not open and you go back to a meeting in the middle of setup.
Printing a label without a declaration
An undeclared label cannot be scanned at the branch and the package does not enter the system. Printing the barcode first and declaring later is not a problem; the reverse is.
Going live without fixing the district field
Orders with an empty district or a district buried in free text fail at the declaration step, and the package goes to the wrong transfer hub. Turning address line 2 into district should be part of setup.
Never setting up the desi declaration
Shipments declared with a fixed desi have their real desi measured at the branch and the difference hits the invoice. The shipping charge taken from the customer stays fixed, so this difference comes straight out of margin.
Thinking the return flow comes from the firm
Return scope depends on the panel you use: one tool does not cover returns at all while another produces a code. Choosing the tool without asking your return need means running return processes by hand after setup is finished.
Not counting the cost of a returned package
A return fee is invoiced separately on shipments that come back without delivery. Stores that turn cash on delivery on need to watch the unaccepted-shipment rate separately and set their rate to that.
Three common problems and how we solve them
The three setup scenarios below show how we handle Shopify Aras Kargo integration problems we have solved in stores we connected.
Labels print, tracking status never arrives
ProblemThe store was creating shipments without trouble and printing labels, but delivery status was not updating on any order. The order list had piled up in unfulfilled status for weeks, and the start of the return window was being tracked by hand.
CauseOnly shipment-creation credentials had been defined in setup. At Aras, tracking and query run from a separate service and that service's user credentials are produced from the integration section of the customer panel, not from the representative. The missing side was exactly this.
SolutionA query record was opened from the panel, the service method to use was chosen, and the produced credentials were entered into the tool together with the customer code. When delivery status started being read back, orders closed on their own; end-of-day checks stopped being a job done by hand.
Reconciliation loss on cash-on-delivery orders
ProblemAfter the store turned cash on delivery on, month-end close started getting longer. Bulk collection amounts reaching the account and orders sitting as payment pending in Shopify did not come together, and the team was marking a few hundred orders by hand every month.
CauseCash on delivery had been opened as a manual payment method on the Shopify side, but no match had been set up between collection on the carrier side and the order. Because the amount to collect was not written on the shipment, which order the money belonged to stayed unclear when it arrived.
SolutionThe amount to collect was set to be read from the order total and written on the shipment, and the order started being marked paid when the money reached the account. The unaccepted-shipment rate was also put on a separate watch, because every package that came back brought a two-way carriage fee.
Return processes staying outside the integration
ProblemThe store had set up the shipping integration and the order and label side were working cleanly. On every return request, though, customer service was producing a code by hand from the carrier panel and sending it to the customer by email; a clear share of daily workload was going there.
CauseThe problem was not at the carrier: the Aras integration of the tool they used did not cover return processes. Other panels for the same firm can produce a return code, so the scope of the return flow was decided by the chosen tool, not by the firm.
SolutionA setup that covers the return flow was chosen and the return code started being produced from the order screen and sent to the customer through Shopify's own return flow. Because the customer was shown the nearby pickup point instead of a branch, the return-completion rate also rose.
Station is the tool we built to run order, label, tracking and collection flow from one panel. If you also sell on marketplaces, their shipping flow stays separate, so seeing the two side by side makes the work easier.
Frequently Asked Questions
How do you set up Shopify Aras Kargo integration?
Where do I get my Aras Kargo API credentials?
Does Aras Kargo have public developer documentation?
What is Müşteri İşlem Sistemi, can I use it instead of the integration?
Does Aras Kargo have its own Shopify app?
Can I set up the integration without an agreement?
Is filling the form enough to become a corporate customer?
Does Shopify's own shipping label work in Turkey?
Can checkout show a live shipping rate?
When is the tracking number added to the order?
Are the barcode on the label and the tracking number the same thing?
What does the shipment has not been declared warning mean?
I set up the integration but my first shipment did not drop into the system, why?
If the tracking number never arrives, what should I check?
What is Aras Tahsilatlı, how does it work?
When does the money reach my account on a cash-on-delivery shipment?
How is cash on delivery set up on the Shopify side?
Can I restrict cash on delivery by region?
How is desi calculated, do I enter it?
Why did my invoice come in higher than I expected?
How is a district field added at checkout?
My customer can change the address while the package is on the road, does that break my declaration?
How does a return code work at Aras?
Can my customer leave a return at a pickup point?
Can I create a return label in Shopify?
How do I decide which integration tool to choose?
Can I ship from more than one branch?
Can I get pickup from the address, can I call the courier from the panel?
How do marketplace shipping and my own agreement split?
Can I work with more than one shipping firm at the same time?
Does the app set the shipping price?
BİZİ TERCİH
EDENLERİN ARASINDA
YER ALIN...
Herkes için Shopify çözümleri üretiyoruz.
Yeni bir Shopify mağazası kurmak, mevcut mağazanızı geliştirmek, özel entegrasyonlar yapmak veya hız problemlerini çözmek mi istiyorsunuz? Biz, teknik işleri sizin yerinize çözen uzman bir Shopify partneriyiz.

Dossha
#shopify

Les Benjamins
#shopify

Nocturne
#shopify

Fellas
#shopify

Mai
#shopify

Karaca
#shopify

Milagron
#shopify

Kiğılı
#shopifySeo

Şölen
#shopify

Adell
#shopifyB2B

Ohora
#shopify

Rendrea
#shopifyBooking

Babeskin
#shopify

The New Lab
#shopify

DTF Town
#shopify

Eczaclick
#shopifySeo

Termos Dünyası
#shopify

Halı.net
#shopify

Blend-r
#shopify

Oioi
#shopifySeo

Nowshopfun
#shopify

Marie Claire
#shopify

Gaziburma
#shopify

Dünyada Kitap
#shopify
NEDEN BİZİMLE
ÇALIŞMANIZ GEREKTİĞİNİ
SİZE ANLATMAK İSTERİZ
Shopify'ı çok iyi anlıyoruz; Türkiye'de her segmentin karşısına biz olarak çıkıyoruz :)







Sadece Shopify konuşanlardan oluşan bir takım

Hey!
Bannerlarım kesik gözüküyor :(
Yardım eder misiniz, kampanya dönemindeyim.
Selam Elif!
2 dakikaya çözüyoruz.





.webp)
.webp)


