productos...

This commit is contained in:
Mireya Serrano 2026-05-26 16:54:50 +02:00
parent 7aa6e7f767
commit 8d4ebb36e1
3 changed files with 11 additions and 5 deletions

View File

@ -31,10 +31,13 @@ public record IntegrationProperties(
* @param baseUrl full API base URL, e.g. {@code https://host/tienda/api}
* @param apiKey webservice key sent as {@code ws_key} query param
* @param defaultCategoryId PrestaShop category ID assigned to new products (default: 2 = Home)
* @param languageId PrestaShop language ID used for all multilingual fields (name, description, etc.)
* Check yours at GET /api/languages. Default 1 is usually English; set to Spanish ID.
*/
public record Prestashop(
@NotBlank String baseUrl,
@NotBlank String apiKey,
int defaultCategoryId
int defaultCategoryId,
int languageId
) {}
}

View File

@ -32,6 +32,7 @@ public class PrestashopClient {
private final RestClient restClient;
private final String wsKey;
private final String languageId;
public PrestashopClient(
@Qualifier("prestashopRestClient") RestClient restClient,
@ -39,6 +40,7 @@ public class PrestashopClient {
) {
this.restClient = restClient;
this.wsKey = props.prestashop().apiKey();
this.languageId = String.valueOf(props.prestashop().languageId());
}
// ── Products ──────────────────────────────────────────────────────────
@ -312,10 +314,10 @@ public class PrestashopClient {
sb.append("<available_for_order>1</available_for_order>");
sb.append("<show_price>1</show_price>");
sb.append("<visibility>both</visibility>");
sb.append("<link_rewrite><language id=\"1\">").append(escapeXml(slug)).append("</language></link_rewrite>");
sb.append("<name><language id=\"1\">").append(escapeXml(name)).append("</language></name>");
sb.append("<description><language id=\"1\">").append(escapeXml(description)).append("</language></description>");
sb.append("<description_short><language id=\"1\">").append(escapeXml(descShort)).append("</language></description_short>");
sb.append("<link_rewrite><language id=\"").append(languageId).append("\">").append(escapeXml(slug)).append("</language></link_rewrite>");
sb.append("<name><language id=\"").append(languageId).append("\">").append(escapeXml(name)).append("</language></name>");
sb.append("<description><language id=\"").append(languageId).append("\">").append(escapeXml(description)).append("</language></description>");
sb.append("<description_short><language id=\"").append(languageId).append("\">").append(escapeXml(descShort)).append("</language></description_short>");
List<String> cats = (dto.categoryIds() != null && !dto.categoryIds().isEmpty())
? dto.categoryIds()
: (dto.idCategoryDefault() != null ? List.of(dto.idCategoryDefault()) : List.of());

View File

@ -16,6 +16,7 @@ integration:
base-url: ${PRESTASHOP_BASE_URL:https://prestashop.loading.net/tienda/api}
api-key: ${PRESTASHOP_API_KEY}
default-category-id: 2
language-id: ${PRESTASHOP_LANGUAGE_ID:1} # set to your Spanish language ID (check GET /api/languages)
api:
security: