allegro / allegro-api

Issue tracker and wiki for Allegro REST API
https://developer.allegro.pl/
217 stars 39 forks source link

Nie można utworzyć oferty z produktem którego jeszcze nie ma w bazie #8450

Closed medikoo closed 8 months ago

medikoo commented 8 months ago

Występuje problem:

:beetle: Opis / Description

Próbuje dodać nową ofertę przez API następującym rządaniem:

{ productSet:
   [ { product:
        { parameters:
           [ { id: '225693', values: [ '0887654230997', [length]: 1 ] },
             { id: '237218', values: [ 'Black Hawk Down / Helikopter w ogniu (2001) [Steelbook]', [length]: 1 ] },
             { id: '246845', valuesIds: [ '246845_622169', [length]: 1 ] },
             { id: '124', valuesIds: [ '124_1', [length]: 1 ] },
             [length]: 4 ],
          id: '0887654230997',
          idType: 'GTIN',
          name: 'Black Hawk Down / Helikopter w ogniu (2001) [Steelbook Blu-ray] (Opis!)',
          category: { id: '89067' },
          images: [ 'http://shares.medyk.org/offer-images/pending/2001-black-hawk-down-bd-it@bd-uk-sb/_DSC9645.jpg', [length]: 1 ] } },
     [length]: 1 ],
  name: 'Black Hawk Down / Helikopter w ogniu (2001) [Steelbook Blu-ray] (Opis!)',
  category: { id: '89067' },
  sellingMode: { price: { amount: 136 } },
  additionalMarketplaces: { 'allegro-cz': { sellingMode: { price: { amount: 792, currency: 'CZK' } }, publication: { state: 'APPROVED' } } },
  publication: { status: 'ACTIVE', marketplaces: { base: { id: 'allegro-pl' }, additional: [ { id: 'allegro-cz' }, [length]: 1 ] } },
  parameters:
   [ { id: '11323', valuesIds: [ '11323_2', [length]: 1 ] },
     { id: '11324', valuesIds: [ '11324_2', [length]: 1 ] },
     [length]: 2 ],
  afterSalesServices:
   { returnPolicy: { id: '063cc8b5-717d-496b-ab1e-2d42ed55b90e' },
     impliedWarranty: { id: 'eac87189-4d38-4ead-a60b-3f99842de30d' } },
  payments: { invoice: 'NO_INVOICE' },
  delivery: { shippingRates: { id: 'bacd3585-ef02-40be-9657-8881b93fbbea' } },
  description:
   { sections:
      [ { items:
           [ { type: 'TEXT',
               content:
                '<h1>Black Hawk Down / Helikopter w ogniu (2001)</h1>\n<h2>[Blu-ray]</h2>\n<p><b>UWAGA:</b> Płyty z wydania włoskiego, steelbook z wydania brytyjskiego</p>\n<p><b>Stan:</b> Bardzo dobry (jak na załączonych zdjęciach)</p>\n<p><b>Polska wersja:</b> Brak</p>\n\n<p>-----------------------------------------------------------------------------------------</p>\n<h1>Płyta Blu-ray</h1>\n<h2>Dźwięk</h2>\n<ul>\n  <li>🇬🇧 (eng) - Dolby Digital - 5.1(side)</li>\n  <li>🇮🇹 (ita) - Dolby Digital - 5.1(side)</li>\n  <li>🇮🇹 (ita) - Linear PCM - 5.1(side)</li>\n  <li>🇬🇧 (eng) - Dolby Digital - stereo</li>\n</ul>\n<h2>Napisy</h2>\n<ul>\n  <li>🇬🇧 (eng)</li>\n  <li>🇮🇹 (ita)</li>\n</ul>\n\n<p>-----------------------------------------------------------------------------------------</p>\n<h1>Płyta Blu-ray: Dodatki</h1>\n<h2>Dźwięk</h2>\n<ul>\n  <li>🇬🇧 (eng) - Dolby Digital - stereo</li>\n</ul>\n<h2>Napisy</h2>\n<ul>\n  <li>🇬🇧 (eng)</li>\n  <li>🇫🇷 (fra)</li>\n</ul>\n' },
             [length]: 1 ] },
        [length]: 1 ] },
  stock: { available: 1 },
  images:
   [ 'http://shares.medyk.org/offer-images/pending/2001-black-hawk-down-bd-it@bd-uk-sb/_DSC9645.jpg',
     'http://shares.medyk.org/offer-images/pending/2001-black-hawk-down-bd-it@bd-uk-sb/_DSC9646.jpg',
     'http://shares.medyk.org/offer-images/pending/2001-black-hawk-down-bd-it@bd-uk-sb/_DSC9647.jpg',
     'http://shares.medyk.org/offer-images/pending/2001-black-hawk-down-bd-it@bd-uk-sb/_DSC9648.jpg',
     [length]: 4 ] }

API odrzuca błędem:

[422] {"errors":[{"code":"MatchingProductNotFoundException","message":"Unprocessable Entity","details":null,"path":"productSet[0].product","userMessage":"Nie znaleziono pasującego produktu dla wskazanego identyfikatora."}]}

Trace id: 33fbf44ab298423a

Poprzednio API po prostu tworzyło nie istniejący produkt. W jaki sposób mogę dodać ofertę, której produktu nie ma już w bazie, lub co do której nie jest znany EAN (stary albo własnoręcznie wykonany produkt) ?

MaciejFrackowiak commented 8 months ago

Zmiana, o której wspominasz została przez nas ogłoszona w poście #8397. Jeżeli świadomie wskazujesz w polu "id" np. GTIN to polegasz na naszych danych z katalogu tj. nie dodamy tak nowego produktu, a wyłącznie sprawdzimy, czy produkt o wskazanym GTIN istnieje w naszym katalogu. Aby utworzyć produkt, pozostaw pole product.id puste i podaj pozostałe dane (GTIN lub MPN możesz dodać jako parametr produktu w polu product.parameters).

medikoo commented 8 months ago

Ok, dziękuję za naprowadzenie