Uathoibriú

Lean ort ag obair mar a dhéanann tú anois.

Tá na sonraí agus na grianghraif cheana féin i do PIM, ERP, DAM nó i bhfillteán comhroinnte. Roghnaigh an chéad oideas a oireann: oibríonn siad go léir le gach tairseach Open Brand Exchange.

Terminal
$ obx push ./export
Publishing to brands.kestrel.example (Kestrel, Kestrel Trail)
images: 27 checked, 3 uploaded (4.2 MB) in 3s
Done: rows: 40, images: 27 → new: 2 · updated: 3 · unchanged: 35
publish.ymlGitHub Action
# .github/workflows/publish.yml
on:
  push:
    paths: ["export/**"]
jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: openbrandexchange/obx-go/push-action@v0
        with:
          url: ${{ secrets.OBX_URL }}
          token: ${{ secrets.OBX_TOKEN }}
          folder: export

Cén t-oideas a oireann duit?

Tá agat…ÚsáidCód ag teastáil
CSV nó zip ar sheoladh gréasáin, freastalaí SFTP nó buicéad S3Allmhairiú sceidealtaníl
fillteán ina dtagann easpórtálachaobx watchníl
freastalaí nó ríomhaire a ritheann tascanna san oíchecron nó Sceidealóir Tascannalíne amháin
d'easpórtálacha i stór GitGitHub Actioncomhad YAML amháin
n8n, Make nó ZapierCéimeanna HTTPníl (amhairc)
forbróir a nascann do PIM nó ERPAn API go díreachbeagán

Formáid amháin do gach rud

Léann gach bealach foilsithe an rud céanna: products.csv le líne amháin do gach méid, agus grianghraif darb ainm {style}_{color}_{position}.jpg (stíl, dath, suíomh). Nuair atá sé sin agat, oibríonn gach oideas thíos.

products.csv (giorraithe)
brand,style_number,name:en,name:nl,item_type,season,materials,color_code,color_name:en,size,gtin
Kestrel,KO-1001,Merino Crew Sweater,Merino trui met ronde hals,sweater,AW26,main: 100% merino_wool,NVY,Navy,S,2000100101018
Kestrel,KO-1001,Merino Crew Sweater,Merino trui met ronde hals,sweater,AW26,main: 100% merino_wool,NVY,Navy,M,2000100101025
Ainmneacha comhad na ngrianghraf
images/
  KO-1001_NVY_1.jpg     ← style KO-1001, colour NVY, position 1 (front)
  KO-1001_NVY_2.jpg
  KO-1001_NVY_3.jpg

An fhormáid allmhairithe iomlán

Cad atá de dhíth ort

I do riarachán, oscail Uaslódáil uathoibríoch → Eochracha rochtana agus cruthaigh eochair nua. Beidh dhá luach agat ansin: seoladh do thairsí (OBX_URL) agus an eochair féin (OBX_TOKEN). Ní thaispeántar an eochair ach uair amháin.

export OBX_URL=https://brands.kestrel.example
export OBX_TOKEN=obxi_…   # admin → Automatic upload → Access keys (shown once)

Tabhair a eochair féin do gach córas. Ansin is féidir leat ceann amháin a chúlghairm gan na cinn eile a bhriseadh.

1. Allmhairiú sceidealta (gan chód)

I do riarachán: Uaslódáil uathoibríoch → Iompórtálacha sceidealaithe → Cuir iompórtáil sceidealaithe leis. Roghnaigh an fhoinse agus cé chomh minic a ritheann sé.

  • Seoladh gréasáin (HTTPS): seoladh products.csv, nó zip le products.csv agus grianghraif. Stóráiltear sonraí logála isteach criptithe.
  • SFTP: freastalaí, úsáideoir, pasfhocal nó eochair, agus an fillteán ina bhfuil an easpórtáil.
  • Buicéad S3: AWS S3, Cloudflare R2, MinIO nó Backblaze: críochphointe, buicéad, fillteán agus eochair inléite amháin.

Roghnaigh "Cuir leis agus nuashonraigh amháin" nó "Tarraing siar earraí atá ar iarraidh freisin". Tarraingíonn an dara rogha siar freisin a d'imigh ón gcomhad, ach stopann sé má d'imeodh níos mó ná leath de bhranda, ionas nach bhfolmhaíonn easpórtáil bhriste do chatalóg riamh. Taispeánann "Tástáil an ceangal" na comhaid a léifeadh sé.

An uirlis obx

Is clár aonair é obx do Windows, macOS agus Linux. Léann sé OBX_URL agus OBX_TOKEN ón timpeallacht, ní uaslódálann sé ach grianghraif nua nó athraithe, déanann sé na leaganacha gréasáin nuair is gá agus fanann sé go dtí go bhfuil gach rud próiseáilte ag do thairseach. Rith é chomh minic agus is mian leat: ní chosnaíonn earraí gan athrú faic.

obx info                                            # check the token, see limits and brands
obx push --csv products.csv --images ./images       # publish a CSV and a folder (or zip) of images
obx push --package export.zip                       # the same, as one zip
obx push --csv products.csv --images ./images --mirror   # also take offline what is no longer in the file
obx push --csv products.csv --images ./images --dry-run  # only check, change nothing
obx watch ./outbox                                  # keep publishing whatever lands in a folder
obx status                                          # recent jobs and their errors

Cód scoir 0 = gach rud i gceart, 2 = críochnaithe ach bhí earráidí i roinnt línte (liostaítear iad), 1 = theip air.

Íoslódáil obx · obx-go

2. Fillteán a fhoilsíonn é féin: obx watch

Lig do do PIM, ERP nó do chomhghleacaí easpórtálacha a shábháil i bhfillteán. Foilsíonn obx watch a luaithe a athraíonn rud éigin agus scipeálann sé grianghraif nár athraigh. Rith é mar sheirbhís, nó le Docker:

obx watch /data/outbox
Docker
docker run -d --restart unless-stopped \
  -e OBX_URL -e OBX_TOKEN \
  -v /data/outbox:/outbox \
  ghcr.io/openbrandexchange/obx watch /outbox

3. cron nó Sceidealóir Tascanna Windows

Linux nó macOS
# crontab -e: every night at 02:30
30 2 * * * OBX_URL=https://brands.kestrel.example OBX_TOKEN=obxi_… /usr/local/bin/obx push --csv /exports/products.csv --images /exports/images >> /var/log/obx.log 2>&1
Windows (PowerShell, uair amháin)
$action = New-ScheduledTaskAction -Execute "C:\Tools\obx.exe" -Argument "push --csv D:\Export\products.csv --images D:\Export\images"
$trigger = New-ScheduledTaskTrigger -Daily -At 2:30am
[Environment]::SetEnvironmentVariable("OBX_URL", "https://brands.kestrel.example", "Machine")
[Environment]::SetEnvironmentVariable("OBX_TOKEN", "obxi_…", "Machine")
Register-ScheduledTask -TaskName "Publish to OBX" -Action $action -Trigger $trigger -User "SYSTEM"

4. GitHub Action

Stóráil OBX_URL agus OBX_TOKEN mar rúin an stóir. Oibríonn an rud céanna in GitLab CI, Bitbucket nó Azure DevOps: suiteáil obx agus rith obx push.

# .github/workflows/publish.yml  (secrets: OBX_URL, OBX_TOKEN)
name: Publish product content
on:
  push:
    branches: [main]
    paths: ["export/**"]
  schedule:
    - cron: "30 2 * * *"
  workflow_dispatch:
jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install obx
        run: |
          curl -fsSL https://github.com/openbrandexchange/obx-go/releases/latest/download/obx_linux_amd64.tar.gz | tar -xz obx
          sudo mv obx /usr/local/bin/
      - name: Publish
        env:
          OBX_URL: ${{ secrets.OBX_URL }}
          OBX_TOKEN: ${{ secrets.OBX_TOKEN }}
        run: obx push --csv export/products.csv --assets-csv export/assets.csv --images export/images

5. n8n, Make nó Zapier

Úsáid gnáthchéim HTTP Request leis an gceanntásc Authorization: Bearer agus d'eochair ina dhiaidh. Is féidir gach céim a athdhéanamh go sábháilte: ní athraíonn na sonraí céanna a sheoladh faoi dhó faic.

Earra (mar shampla nuair a athraíonn sé i do PIM)
PUT {OBX_URL}/obx/v1/ingest/products/KO-1001
Authorization: Bearer obxi_…
Content-Type: application/json

{"style_number": "KO-1001",
 "name": {"en": "Merino Crew Sweater", "nl": "Merino trui met ronde hals"},
 "item_type": "sweater", "season": "AW26",
 "materials": [{"part": "main", "fibers": [{"fiber": "merino_wool", "percentage": 100}]}]}
Dath agus méid, lena EAN
PUT {OBX_URL}/obx/v1/ingest/variants/2000100101025
Authorization: Bearer obxi_…
Content-Type: application/json

{"product_external_id": "KO-1001", "gtin": "2000100101025",
 "color": {"code": "NVY", "name": {"en": "Navy"}}, "size": "M"}
Grianghraf: na sonraí ar dtús, ansin an comhad féin
PUT {OBX_URL}/obx/v1/ingest/assets/KO-1001_NVY_1
Authorization: Bearer obxi_…
Content-Type: application/json

{"product_external_id": "KO-1001", "color_code": "NVY",
 "role": "packshot", "view": "front", "position": 1}

PUT {OBX_URL}/obx/v1/ingest/assets/KO-1001_NVY_1/files/original
Authorization: Bearer obxi_…
Content-Type: image/jpeg

<the image file as binary body>

Ní dhéanann Tairseach do Cloudflare leaganacha gréasáin de ghrianghraif é féin. Foilsigh ansin le obx nó trí "Iompórtálacha" i do riarachán: déanann siad sin duit iad. Taispeántar grianghraif a thagann ar bhealach eile, mar shampla ó iompórtáil sceidealaithe, ina mbunmhéid go dtí sin.

Rud a thógáil as líne
PATCH {OBX_URL}/obx/v1/ingest/products/KO-1001
Authorization: Bearer obxi_…
Content-Type: application/merge-patch+json

{"status": "unpublished"}

Ar mhaith leat fógra nuair a tharlaíonn rud éigin? I do riarachán, cuir fógra (webhook) leis le haghaidh allmhairiú críochnaithe nó iarratas nua ar rochtain, agus lig dó truicear a thosú in n8n, Make nó Zapier.

6. An API go díreach (d'fhorbróirí)

Cuimhníonn comhtháthú ar an méid a sheol sé an uair dheireanach agus ní sheolann sé ach na hathruithe, i mbaisceanna. Nó seol an CSV mar atá agus lig don tairseach é a léamh.

Scipeáil grianghraif atá ag an tairseach cheana, ansin seol baisc amháin
URL="$OBX_URL/obx/v1/ingest"; AUTH="Authorization: Bearer $OBX_TOKEN"

# 1. Upload only the images the node does not have yet (addressed by sha256).
for f in images/*.jpg; do
  sha=$(shasum -a 256 "$f" | cut -d' ' -f1)
  curl -sf -I -H "$AUTH" "$URL/blobs/$sha" >/dev/null || \
    curl -sf -X PUT -H "$AUTH" -H 'Content-Type: image/jpeg' --data-binary @"$f" "$URL/blobs/$sha"
done

# 2. One batch of up to 1000 operations (NDJSON), processed in order.
cat > batch.ndjson <<'EOF'
{"op":"upsert","kind":"product","external_id":"KO-1001","data":{"style_number":"KO-1001","name":{"en":"Merino Crew Sweater"}}}
{"op":"upsert","kind":"variant","external_id":"2000100101025","data":{"product_external_id":"KO-1001","gtin":"2000100101025","color":{"code":"NVY"},"size":"M"}}
{"op":"unpublish","kind":"product","external_id":"KO-0999"}
EOF
curl -s -X POST -H "$AUTH" -H 'Content-Type: application/x-ndjson' \
  -H "Idempotency-Key: nightly-$(date +%F)" --data-binary @batch.ndjson "$URL/batch"
CSV agus zip de ghrianghraif in aon iarraidh amháin
curl -s -X POST -H "Authorization: Bearer $OBX_TOKEN" \
  -F [email protected] -F [email protected] \
  -F 'options={"mode":"upsert"};type=application/json' \
  "$OBX_URL/obx/v1/ingest/imports"          # returns a job; poll $OBX_URL/obx/v1/ingest/jobs/<id>

Tá gach mionsonra sa tsonraíocht:Ingest API ·oidis uathoibrithe ·Go SDK ·Do fhorbróirí